一、效果展示
二、代码说明
(此处拿主窗体向子窗体传参作为例子进行解释说明,需要完整代码请到文章结尾自取)
(一)主窗体代码:
1.创建子窗体实例
FormChid1 formChid1 = new FormChid1();
FormChid2 formChid2 = new FormChid2();
2.声明委托和创建实例
public delegate void FormSendMsg1(string msg); //声明委托
public FormSendMsg1 formSendMsg1;//创建委托实例
public delegate void FormSendMsg2(string msg);//声明委托
public FormSendMsg2 formSendMsg2;//创建委托实例
3.使用TextChange事件属性,当文本值变化时调用委托实例传参
private void textBox1_TextChanged(object sender, EventArgs e)
{
formSendMsg1(textBox1.Text);
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
formSendMsg2(textBox2.Text);
}
4.将主窗体委托实例与被子窗体中的接收方法关联
public FormMain()
{
InitializeComponent();
formSendMsg1 += formChid1.DelegateFormReceiveMsg1;
formSendMsg2 += formChid2.DelegateFormReceiveMsg2;
}
(二)子窗体代码:
5.创建与发送窗体中声明委托类型相同的接收方法
public void DelegateFormReceiveMsg1(string msg) => textBox1.Text = msg;
(此处两个子窗体内代码相同,子窗体2内代码就不展示了)
子窗体给主窗体传参代码和上述代码类似,只是创建委托实例、对应函数的位置不同,具体参照完整源码
三、完整源码
链接:https://pan.baidu.com/s/11eM8jQ99Lpw4amMBy_I_yg
提取码:7mxi