常用的Winform窗體傳值有兩種方式。
1.更改Form.designer.cs文件,將控件的設為Public,供子窗體訪問。
在designer.cs文件的最后,找到你的控件聲明。
private System.Windows.Forms.TextBox textBox1;
更改Private為public,保存即可。
2.利用委托進行窗體傳值。
父窗體:Form1
子窗體:Form2
點擊Form1,彈出Form2,點擊按鈕返回值給Form1
首先在Form2中定義委托和事件:
//聲明委托 和 事件 public delegate void TransfDelegate(String value); public partial class Form2 : Form { public Form2() { InitializeComponent(); } public event TransfDelegate TransfEvent; private void button1_Click(object sender, EventArgs e) { //觸發事件 TransfEvent(textBox1.Text); this.Close(); } }
然后在Form1中進行調用:
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 frm = new Form2(); //注冊事件 frm.TransfEvent += frm_TransfEvent; frm.ShowDialog(); } //事件處理方法 void frm_TransfEvent(string value) { textBox1.Text = value; } }
以上代碼出自@WaitingEver