点窗体Form1中的按钮,弹出Form2,在Form2中的文本框中输入字符,点确定按钮。Form2文本框中的内容显示在Form1的Label中。
首先在Form2中定义委托和事件。
public delegate void SendMess (string str);
public event SendMess send;
然后在Form2中,点确定按钮触发事件
private void button1_Click(object sender, System.EventArgs e)
{
send(this.textBox1 .Text );
}
在Form1中new Form2.
private Form2 frm2=new Form2 ();
在InitializeComponent()中关联事件
frm2.send +=new Invoke.Form2.SendMess(send);
在Form中写关联的send方法
public void send(string str)
{
this.label1 .Text =str;
}
Form1中点按钮弹出Form2
private void button1_Click(object sender, System.EventArgs e)
{
frm2.ShowDialog ();
}
完成了。试试吧。
总结一下:
关于事件:
1、在一个类中定义委托和事件
定义事件的方法
public event SendMess send
SendMess是刚才定义的委托名。这两处要一致。
2、在某个事件中触发这个事件
3、在另一个类中new 这个类并关联事件(创建委托实例)
frm2.send +=new Invoke.Form2.SendMess(send);
invoke为我的工程名。