C#事件中的兩個參數(shù)詳解(object sender,EventArgs e)
C#事件參數(shù)(object sender,EventArgs e)
C#窗體程序有很多的事件,比如按鈕點擊事件,雙擊事件,F(xiàn)orm_Load事件,這些事件的實現(xiàn)里都有兩個參數(shù)(object sender,EventArgs e),什么意思呢?
我們可以看到,F(xiàn)orm1_Load(object sender, EventArgs e)本質(zhì)就是一個有兩個參數(shù)的函數(shù)。
那么函數(shù)怎么能夠自己調(diào)用自己呢?不能。它肯定在某個地方被調(diào)用了。
在Form1_Load上鼠標右鍵點擊查看所有引用,如下:
然后點擊這個查到的內(nèi)容,轉(zhuǎn)到它的調(diào)用出:
原來Form1_Load()是在Form1.desinger下面的InitializeComponent()函數(shù)里調(diào)用的。InitializeComponent()這個函數(shù)是在主界面Form類的構(gòu)造函數(shù)里調(diào)用的。
我們也知道,在主程序運行的時候,會自動執(zhí)行Form1類下面的構(gòu)造函數(shù),進而調(diào)用InitializeComponent()函數(shù),InitializeComponent()函數(shù)通過里面的Load事件調(diào)用From1_Load()函數(shù):
this.Load += new System.EventHandler(this.Form1_Load);
而這個調(diào)用,其實是Load事件調(diào)用了Form1_Load()函數(shù)。
而System.EventHandler是委托,通過new委托的方式調(diào)用事件要觸發(fā)的函數(shù)。
鼠標放到EventHandler上轉(zhuǎn)到這個委托的定義里去:
我們可以看到原來是Load事件所在的委托,在定義的時候就有這兩個參數(shù)(object sender, EventAgrs e),那么可以知道,F(xiàn)orm1_Load(object sender, EventAgrs e)函數(shù)是被Load事件調(diào)用的,所以要和委托EventHandler的參數(shù)保持一致。
綜上,這兩個參數(shù)從形式上看,只是為了和EventHandler委托的參數(shù)保持一致。
事件通過委托調(diào)用的函數(shù),必須和委托的參數(shù)保持一致。
C#函數(shù)中(object sender, EventArgs e)參數(shù)是什么意思
object sender:表示觸發(fā)事件的控件對象
sender參數(shù)用于傳遞指向事件源對象的引用。簡單來講就是當前的對象。
例如button的點擊事件,那么這個sender就代表這個button自己。
private void btn1_Click(object sender, EventArgs e) { ? ? ? //獲取當前點擊的Button ? ? ? Button thisClickedButton = sender as Button; } ?
EventArgs e:表示事件數(shù)據(jù)的類的基類
e參數(shù)是是EventArgs類型。簡單來理解就是記錄事件傳遞過來的額外信息。
一般用于傳遞用戶點擊的位置啊,鍵盤按下的鍵等事件的額外信息。
例如鼠標點擊的位置、按下、釋放等信息。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
WPF利用WindowChrome實現(xiàn)自定義窗口
這篇文章主要為大家詳細介紹了WPF如何利用WindowChrome實現(xiàn)自定義窗口,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下2023-02-02DevExpress實現(xiàn)GridControl列頭繪制Checkbox的方法
這篇文章主要介紹了DevExpress實現(xiàn)GridControl列頭繪制Checkbox的方法,需要的朋友可以參考下2014-08-08C#.NET中如何批量插入大量數(shù)據(jù)到數(shù)據(jù)庫中
這篇文章主要給大家介紹C#.net中如何批量插入大量數(shù)據(jù)到數(shù)據(jù)庫中,本文涉及到C#.net中批量插入數(shù)據(jù)到數(shù)據(jù)庫中方面的內(nèi)容,對C#.net批量插入數(shù)據(jù)到數(shù)據(jù)庫中感興趣的朋友可以參考下本篇文章2015-10-10