最近用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 void SendMsg(string msg);
public event SendMsg send;
public Form_Child1()