新写的一个委托程序!目的为了巩固!委托的用法!

代码如下:public delegate void selectLable(string e);
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            checkBox1.Enabled = false;
            checkBox2.Enabled = false;
            checkBox3.Enabled = false;
            if (str == "")
            {
                label1.Text = "请输入字符串!";
            }
        }
        public string str { get { return textBox1.Text.ToString(); } set { str = value; } }
       

        private void button1_Click(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true && checkBox2.Checked == false && checkBox3.Checked == false)
            {
                label1.ForeColor = System.Drawing.Color.Red;
            }
            else if (checkBox1.Checked == false && checkBox2.Checked == true && checkBox3.Checked == false)
            {
                label1.ForeColor = System.Drawing.Color.Green;
            }
            else if (checkBox1.Checked == false && checkBox2.Checked == false && checkBox3.Checked == true)
            {
                label1.ForeColor = System.Drawing.Color.Black;
            }
            else
            {
                label1.Text = str;
            }
        }
        public event selectLable onselectLable;
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                checkBox1.Checked = radioButton1.Checked;
                checkBox2.Checked = false;
                checkBox3.Checked = false;
                if (radioButton1 != null)
                {
                    onselectLable(radioButton1.Checked.ToString());
                }
            }
            catch {
                label1.Text = str;
            }
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                checkBox1.Checked = false;
                checkBox2.Checked = radioButton2.Checked;
                checkBox3.Checked = false;
                if (radioButton2 != null)
                {
                    onselectLable(radioButton2.Checked.ToString());
                }
            }
            catch {
                label1.Text = str;
            }
          
        }

        private void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                checkBox1.Checked = false;
                checkBox2.Checked = false;
                checkBox3.Checked = radioButton3.Checked;
                if (radioButton3 != null)
                {
                    onselectLable(radioButton3.Checked.ToString());
                }
            }
            catch {
                label1.Text = str;
            }
          
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                radioButton1.Checked = false;
                radioButton2.Checked = false;
                radioButton3.Checked = false;
               
            }
            catch
            {
                str = "数据已经清空!";
                label1.Text = str;
            }
        }
    }

 

界面如下:

图片

 

图片

 

图片

当你点击取消选择的时候,你会发现,不用重复的去写checkBox的状态,而是直接写radioButton即可达到清空的目的!这里输入框没清空,抱歉~呵呵~不过很好清空的了!

图片

委托的函数的功能就是在选择下面的radioButton的时候,上面的checkBox会连动,或许你会说,我直接在radioButton写谁是 checkBox1.Checked = true;
                checkBox2.Checked = false;
                checkBox3.Checked = false;

何必要checkBox1.Checked = false;
                checkBox2.Checked = false;
                checkBox3.Checked = radioButton3.Checked;
                if (radioButton3 != null)
                {
                    onselectLable(radioButton3.Checked.ToString());
                }

而且还要处理异常!多麻烦啊。等等,朋友,当你多此调用的时候你会回来写我的,这也就是自己写时间,调用委托函数的好处。多的就不解释了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值