c# 自定義事件傳參(控制元件資料同步更新)
阿新 • • 發佈:2018-11-02
下面是傳值的視窗程式碼
public partial class Form1 : Form {
//自定義一個事件 public event EventHandler SetMsg; public Form1() { InitializeComponent(); Form2 form2 = new Form2(); SetMsg += form2.MainFormTxtChaned; form2.Show(); }
//這段程式碼是在控制元件初始化完成後把setMsg事件與form2裡面的函式註冊繫結在一起
//定義一個類繼承與EventArgs
public class MyEventArg: EventArgs { public string Text { get; set; } }
窗體接收程式碼
internal void MainFormTxtChaned(object sender, EventArgs e) { //e就是A窗體傳來的物件因為MyEventarg繼承與EventArg所以可以強轉型別
MyEventArg arg = e as MyEventArg; this.SetText(arg.Text); }
資料傳輸視窗事件呼叫方式
private void textBox1_TextChanged(object sender, EventArgs e) {
把這段程式碼放入textbox的changed事件就可以達到2個窗體上的textbox的內容就克同步更新了 SetMsg(this, new MyEventArg() { Text = this.textBox1.Text }); }