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

xiaoxiao2021-02-28  64

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

还是上篇博文里的例子,还是两个窗体之间的传值,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(); }运行一下,就完成了。

转载请注明原文地址: https://www.6miu.com/read-73086.html

最新回复(0)