C#中的事件處理機制

先來熟悉.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事件。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章