亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#事件中的兩個(gè)參數(shù)詳解(object sender,EventArgs e)

 更新時(shí)間:2022年09月09日 14:19:50   作者:JosieBook  
這篇文章主要介紹了C#事件中的兩個(gè)參數(shù)詳解(object sender,EventArgs e),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

C#事件參數(shù)(object sender,EventArgs e)

C#窗體程序有很多的事件,比如按鈕點(diǎn)擊事件,雙擊事件,F(xiàn)orm_Load事件,這些事件的實(shí)現(xiàn)里都有兩個(gè)參數(shù)(object sender,EventArgs e),什么意思呢?

我們可以看到,F(xiàn)orm1_Load(object sender, EventArgs e)本質(zhì)就是一個(gè)有兩個(gè)參數(shù)的函數(shù)。

那么函數(shù)怎么能夠自己調(diào)用自己呢?不能。它肯定在某個(gè)地方被調(diào)用了。

在Form1_Load上鼠標(biāo)右鍵點(diǎn)擊查看所有引用,如下:

然后點(diǎn)擊這個(gè)查到的內(nèi)容,轉(zhuǎn)到它的調(diào)用出:

原來(lái)Form1_Load()是在Form1.desinger下面的InitializeComponent()函數(shù)里調(diào)用的。InitializeComponent()這個(gè)函數(shù)是在主界面Form類的構(gòu)造函數(shù)里調(diào)用的。

我們也知道,在主程序運(yùn)行的時(shí)候,會(huì)自動(dòng)執(zhí)行Form1類下面的構(gòu)造函數(shù),進(jìn)而調(diào)用InitializeComponent()函數(shù),InitializeComponent()函數(shù)通過(guò)里面的Load事件調(diào)用From1_Load()函數(shù):

this.Load += new System.EventHandler(this.Form1_Load); 

而這個(gè)調(diào)用,其實(shí)是Load事件調(diào)用了Form1_Load()函數(shù)。

而System.EventHandler是委托,通過(guò)new委托的方式調(diào)用事件要觸發(fā)的函數(shù)。

鼠標(biāo)放到EventHandler上轉(zhuǎn)到這個(gè)委托的定義里去:

我們可以看到原來(lái)是Load事件所在的委托,在定義的時(shí)候就有這兩個(gè)參數(shù)(object sender, EventAgrs e),那么可以知道,F(xiàn)orm1_Load(object sender, EventAgrs e)函數(shù)是被Load事件調(diào)用的,所以要和委托EventHandler的參數(shù)保持一致。

綜上,這兩個(gè)參數(shù)從形式上看,只是為了和EventHandler委托的參數(shù)保持一致。

事件通過(guò)委托調(diào)用的函數(shù),必須和委托的參數(shù)保持一致。

C#函數(shù)中(object sender, EventArgs e)參數(shù)是什么意思

object sender:表示觸發(fā)事件的控件對(duì)象

sender參數(shù)用于傳遞指向事件源對(duì)象的引用。簡(jiǎn)單來(lái)講就是當(dāng)前的對(duì)象。

例如button的點(diǎn)擊事件,那么這個(gè)sender就代表這個(gè)button自己。

private void btn1_Click(object sender, EventArgs e)
{
? ? ? //獲取當(dāng)前點(diǎn)擊的Button
? ? ? Button thisClickedButton = sender as Button;
} ?

EventArgs e:表示事件數(shù)據(jù)的類的基類

e參數(shù)是是EventArgs類型。簡(jiǎn)單來(lái)理解就是記錄事件傳遞過(guò)來(lái)的額外信息。

一般用于傳遞用戶點(diǎn)擊的位置啊,鍵盤按下的鍵等事件的額外信息。

例如鼠標(biāo)點(diǎn)擊的位置、按下、釋放等信息。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C# 實(shí)現(xiàn)窗口無(wú)邊框,可拖動(dòng)效果

    C# 實(shí)現(xiàn)窗口無(wú)邊框,可拖動(dòng)效果

    這篇文章主要介紹了C# 實(shí)現(xiàn)窗口無(wú)邊框,可拖動(dòng)效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2018-03-03
  • WPF利用WindowChrome實(shí)現(xiàn)自定義窗口

    WPF利用WindowChrome實(shí)現(xiàn)自定義窗口

    這篇文章主要為大家詳細(xì)介紹了WPF如何利用WindowChrome實(shí)現(xiàn)自定義窗口,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-02-02
  • C#實(shí)現(xiàn)搶紅包算法的示例代碼

    C#實(shí)現(xiàn)搶紅包算法的示例代碼

    很多商家都會(huì)使用紅包進(jìn)行促銷,那么你知道紅包算法是怎么實(shí)現(xiàn)的嗎,本文主要介紹了C#實(shí)現(xiàn)搶紅包算法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C#中SQL Command的基本用法

    C#中SQL Command的基本用法

    今天小編就為大家分享一篇關(guān)于C#中SQL Command的基本用法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • OpenXml讀寫Excel實(shí)例代碼

    OpenXml讀寫Excel實(shí)例代碼

    這篇文章主要介紹了OpenXml讀寫Excel代碼分享,大家參考使用
    2013-12-12
  • c# dynamic的好處

    c# dynamic的好處

    這篇文章主要介紹了c# dynamic的好處,以示例代碼幫助大家更好的了解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-12-12
  • DevExpress實(shí)現(xiàn)GridControl列頭繪制Checkbox的方法

    DevExpress實(shí)現(xiàn)GridControl列頭繪制Checkbox的方法

    這篇文章主要介紹了DevExpress實(shí)現(xiàn)GridControl列頭繪制Checkbox的方法,需要的朋友可以參考下
    2014-08-08
  • C#中反射和擴(kuò)展方法如何運(yùn)用

    C#中反射和擴(kuò)展方法如何運(yùn)用

    這篇文章主要為大家詳細(xì)介紹了C#中反射和擴(kuò)展方法的運(yùn)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • C#?WPF使用GDI實(shí)現(xiàn)截屏功能

    C#?WPF使用GDI實(shí)現(xiàn)截屏功能

    這篇文章主要為大家詳細(xì)介紹了C#?WPF如何使用GDI實(shí)現(xiàn)截屏功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • C#.NET中如何批量插入大量數(shù)據(jù)到數(shù)據(jù)庫(kù)中

    C#.NET中如何批量插入大量數(shù)據(jù)到數(shù)據(jù)庫(kù)中

    這篇文章主要給大家介紹C#.net中如何批量插入大量數(shù)據(jù)到數(shù)據(jù)庫(kù)中,本文涉及到C#.net中批量插入數(shù)據(jù)到數(shù)據(jù)庫(kù)中方面的內(nèi)容,對(duì)C#.net批量插入數(shù)據(jù)到數(shù)據(jù)庫(kù)中感興趣的朋友可以參考下本篇文章
    2015-10-10

最新評(píng)論