Winform利用委託實現子窗體傳值給父窗體
阿新 • • 發佈:2018-11-11
首先,新建兩個窗體,父窗體Form1和子窗體Form2,新增控制元件如下。實現在子窗體的textBox中輸入字元,實時顯示在父窗體的textBox中的功能。
子窗體中程式碼:
父窗體中程式碼:using System; using System.Windows.Forms; namespace WindowsFormsApplication1 { //宣告一個委託,該委託有個string型別的引數。委託不一定要宣告在這裡,也可宣告在其他名稱空間中 public delegate void Mydel(string str); public partial class Form2 : Form { //定義一個委託物件 public Mydel del; public Form2() { InitializeComponent(); } //在textBox控制元件的事件中,找到TextChanged事件 private void textBox2_TextChanged(object sender, EventArgs e) { //呼叫委託物件,引數是子窗體的textBox中的內容 del(textBox2.Text); } } }
效果:using System; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); //在子窗體show之前,將方法賦給子窗體中的委託物件 f2.del = textshow; f2.ShowDialog(); } //一個方法,將內容顯示在父窗體的textBox中 void textshow(string str) { textBox1.Text = str; } } }