最近用C#做上位机程序开发,要实现这样一个功能:
父窗体创建了两个子窗体——子窗体1和子窗体2,子窗体1产生的数据要在子窗体2中显示出来。
因为这两个子窗体本身之间并没有直接关联,他们都是由父窗体new出来的,所以就想着1的数据先发给父窗体,父窗体再发给2。这样结构上比较清晰,也符合松耦合的模式。结构如下:

窗体间数据传递的方法有多种,这里我们直接选择最被推荐的方法:委托(delegate)和事件(event)。
子窗体1发送消息给父窗体
在子窗体1中定义一个委托
public delegate void SendMsg(string msg);
再定义一个事件
public event SendMsg send;
点击发送按钮时,触发事件
private void button1_Click(object sender, EventArgs e)
{
send(textBox1.Text);
}
完整代码
public partial class Form_Child1 : Form
{
public delegate

本文介绍了如何在C#中通过委托和事件实现窗体间的通信。子窗体1创建了一个委托和事件,当点击发送按钮时触发事件,将数据传递给父窗体。父窗体接收到数据后,通过类似的方式将数据转发给子窗体2。这种方法实现了清晰的结构和松耦合的设计模式。
最低0.47元/天 解锁文章
3838





