北京北大青鳥學校學術部提供:
擴展閱讀:C#委托與事件(一)
二、在窗體中使用委托和事件
在上一篇文章中講解的內容并不能體現委托和事件的優點,其實,委托和事件在C#中使用非常廣泛,例如,當我們點擊某個“按鈕”的時候,就會有一個“Click”事 件觸發,而這個事件會通知“委托”,在C#窗體應用程序中,“委托”的名字比較規范,統一使用“EventHandler”,它的具體格式是“void EventHandler(object sender, EventArgs e);”。相信大家都寫過下面這樣子的HelloWorld程序:(北大青鳥學校,北大青鳥課程)
當點擊按鈕的時候彈出一個對話框。我們怎樣實現的呢?你肯定會說,我們在設計窗口雙擊按鈕,就會自動為我們生成類似如下的方法:(北大青鳥學校,北大青鳥課程)
private voi button1_Click(object sender, EventArgs e)
{
MessageBox.Show("我被點擊了!!!");
}
其實,這里用到的就是事件和委托,這里的button1_Click就是符合EventHandler委托規矩的一個具體的方法,即返回值為void,參數分別是一個object和EventArgs。
我們可以在Form1.Designer.cs中看到如下代碼:
this.button1.Click += new System.EventHandler(this.button1_Click);
可以看到,這里有一個Click事件,然后將一個委托實例附加到這個事件上,跟我們前面講的控制臺應用程序中的用法是完全一樣的。那這個Click事件是怎么觸發的呢?對于這些系統類的事件,并不用我們管。
當然,我們也可以定義自己的事件和委托,例如我定義一個事件,這個事件就是輸出對象的名字。(北大青鳥學校,北大青鳥課程)
北大青鳥學校撰寫