先來熟悉.net框架中和事件有關的類和委託,瞭解C#中預定義事件的處理。
EventArgs是包含事件數據的類的基類,用於傳遞事件的細節。
EventHandler是一個委託聲明,如下:
public delegate void EventHandler( object sender , EventArgs e )
注意這裏的參數,前者是一個對象(其實這裏傳遞的是對象的引用,如果是button1的click事件則sender就是button1),後面是包含事件數據的類的基類。
下面我們研究一下Button類看看其中的事件聲明(使用WinCV工具查看),以Click事件爲例。
public event EventHandler Click;
這裏定義了一個EventHandler類型的事件Click
前面的內容都是C#在類庫中已經爲我們定義好了的。下面我們來看編程時產生的代碼。
private void button1_Click(object sender, System.EventArgs e)
{
...
}
這是我們和button1_click事件所對應的方法。注意方法的參數符合委託中的簽名(既參數列表)。那我們怎麼把這個方法和事件聯繫起來呢,請看下面的代碼。
this.button1.Click += new System.EventHandler(this.button1_Click);
把this.button1_Click方法綁定到this.button1.Click事件。