委托--事件--基础以及在现在做的项目上的实际应用(三)

事件:事件就是将委托这个类型,包装成一个对象,用这个对象,注册需要触发的方法。

还是上篇博文里的例子,还是两个窗体之间的传值,Form设计如图:


From1点击按钮,把文本框的数据传到Form2,还是用构造函数传值的方式,代码:

 private void button1_Click(object sender, EventArgs e)
        {
            Form2 f = new Form2(textBox1.Text);
            f.Show();
        }
Form2:构造函数:


 public Form2(string s):this()
        {
            textBox1.Text = s;
        }
 由于Form2需要改变Form1中文本框的值,委托这么定义:

 public delegate void Mydele(string sss);

Form1中定义改变文本框的方法:

  void f_mdele(string str)
        {
            textBox1.Text = str;
        }
那么问题来了:说好的事件呢?说好的传值呢?

在Form2中这么定义: 上面说过,事件是对象,要在类中定义,相当与一个变量。

 public event Mydele mdele;
在Form2按钮点击事件中调用:

 private void button1_Click(object sender, EventArgs e)
        {
            if (mdele!=null)
            {
                mdele(textBox1.Text);
            }
        }
这样Form2中的代码就写完了,Form1中怎么注册这个事件呢?用+=   改造Form1中按钮点击的事件:

 private void button1_Click(object sender, EventArgs e)
        {
            Form2 f = new Form2(textBox1.Text);
            f.mdele+=f_mdele;
            f.Show();
        }
运行一下,就完成了。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不老的老头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值