在 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, 并显示出来.
来源: http://www.bubuko.com/infodetail-3204282.html