1. 程式人生 > >c# 自定義事件傳參(控制元件資料同步更新)

c# 自定義事件傳參(控制元件資料同步更新)

下面是傳值的視窗程式碼

 

 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 }); }