窗体之间除了以传递参数的方式进行互通外,还可以用委托
例子:
form1 点击按钮,出现窗体2
private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); Action<string> f2CallBack = x => { label1.Text = x;//函数体。要进行的操作 };//(3)设置与窗体2相同签名的委托 f2.CallBack = f2CallBack;//(4)对声明委托的窗体进行委托绑定 f2.Show(); }
form2 点击按钮,将窗体2输入的内容传递到窗体1,进行实时变更。
//(1)声明委托 public Action<string> CallBack; private void button1_Click(object sender, EventArgs e) { //(2)传递参数 this.CallBack?.Invoke(textBox1.Text);//传递变量值 }
完!