自定義事件簡單使用

摘抄:
 來自: C#事件(event)解析
C#中使用事件須要的步驟:
1.建立一個委託
2.將建立的委託與特定事件關聯(.Net類庫中的不少事件都是已經定製好的,因此他們也就有相應的一個委託,在編寫關聯事件處理程序--也就是當有事件發生時咱們要執行的方法的時候咱們須要和這個委託有相同的簽名)
3.編寫事件處理程序
4.利用編寫的事件處理程序生成一個委託實例
5.把這個委託實例添加到產生事件對象的事件列表中去,這個過程又叫訂閱事件

C#中事件產生和實現的流程:
1.定義A爲產生事件的實例,a爲A產生的一個事件
2.定義B爲接收事件的實例,b爲處理事件的方法
3.A因爲用戶(程序編寫者或程序使用者)或者系統產生一個a事件(例如點擊一個Button,產生一個Click事件)
4.A經過事件列表中的委託對象將這個事件通知給B
5.B接到一個事件通知(實際是B.b利用委託來實現事件的接收)
6.調用B.b方法完成事件處理
 
 
 
 
 
爲系統定義事件綁定回調函數


1
this.btnBack.Click += new System.EventHandler(this.btnBack_Click);

 

 
自定義事件並綁定回調函數

自定義事件
什麼是自定義事件:具備 event 關鍵字的爲一個事件。
自定義事件由誰來執行:event 須要一個 delegate 來執行
如何爲自定義事件綁定回調函數:xxx.event += new delegate(FuncName)
如何觸發一個事件:event(); 須要提供事件的委託者必要的參數
注:
event 的類必須是執行回調函數的委託者(類)
event 沒有參數
event 的執行委託者必須與委託事件參數、簽名必須相同
例:
無參數
1 this.EventTester += new EventDelegate(EventTestFunc); //綁定
2 EventTesters(); //觸發
3 public delegate void EventDelegates(); //委託者
4 public event EventDelegates EventTesters; //事件
5 public void EventTestFuncs() //回調函數/委託事件
6 {
7   MessageBox.Show("無參數自定義事件");
8 }

 

帶有參數
1 public delegate void EventDelegate(object sender, EventArgs e);
2 public event EventDelegate EventTester;
3 public void EventTestFunc(object sender, EventArgs e)
4 {
5   MessageBox.Show("有參數自定義事件");
6 }
相關文章
相關標籤/搜索