事件定義
// // 摘要: // 在單擊控制元件時發生。 [SRCategory("CatAction")] [SRDescription("ControlOnClickDescr")] public event EventHandler Click;
事件訂閱
this.button1.Click += new System.EventHandler(this.button1_Click);
事件委託型別
// 摘要: // 表示將處理不包含事件資料的事件的方法。 // // 引數: // sender: // 事件源。 // // e: // 不包含任何事件資料的 System.EventArgs。 [Serializable] [ComVisible(true)] public delegate void EventHandler(object sender, EventArgs e);
委託就等效於一個型別安全的函式指標或一個回撥。雖然委託具有許多其他的用途,但這裡只討論委託的事件處理功能。
只有當事件生成事件資料時才需要自定義事件委託。 許多事件,包括一些使用者介面事件(例如滑鼠單擊)在內,都不生成事件資料。 在這種情況下,類庫中為無資料事件提供的事件委託 System.EventHandler 便足夠了。
事件委託是多路廣播的,這意味著它們可以對多個事件處理方法進行引用。 有關詳細資訊,請參見 Delegate。 委託考慮了事件處理中的靈活性和精確控制。 通過維護事件的已註冊事件處理程式列表,委託為引發事件的類擔當事件傳送器的角色。
有關使用委託在您的元件或控制元件中提供事件功能的詳細資訊,請參見引發事件。
該文摘抄自msdn,定義事件的同時,可以自定義事件委託型別。假如給事件委託繫結了事件處理方法,當事件發生時事件處理方法的內容會被執行。
例子使用的winform中的按鈕事件程式碼。如果熟悉winform的開發,經過思考聯絡,應該能明白,事件大概執行思路。