winform 窗体间的传值(转)

耗尽温柔 提交于 2019-11-30 02:58:40

原文:   https://blog.csdn.net/e_wsq/article/details/7714031

源码:  https://github.com/SHAREVIEW/winform-.git

在WinForm之间传值有很多种方法,在这里我用的是delegate and event进行传值.
新建一个WindowsApplication,创建两个WinForm.其实它们就是两个类.
每个WinForm中各加入一个Button和一个TextBox.
在WinForm2中写入代理和事件(delegate and event)如下:
//代理声明
public delegate void SendMessage(string str);
//事件声明
public event SendMessage SendEvent;
private void btnSend_Click(object sender, EventArgs e)
{
       //调用事件
      SendEvent(textBox1.Text);
}
在WinForm1中写入如下代码:
private void btnShow_Click(object sender, EventArgs e)
{
        Form2 f2 = new Form2();
        //Form2事件注册
        f2.SendEvent+=new Form2.SendMessage(GetMessage);
        f2.Show();
}
//代理调用的方法
public void GetMessage(string str)
{
       textBox1.Text = str;
}
在点击WinForm1的Button弹出WinForm2后,在WinForm2中文本框输入文字,然后点击按钮,信息将会立刻发送到WinForm1,并显示出来.

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!