C#自定義事件及用法實(shí)例
本文實(shí)例講述了C#自定義事件及用法。分享給大家供大家參考。具體分析如下:
事件是C#中一個(gè)重要的內(nèi)容,MSDN上有一個(gè)自定義事件的演示示例。我看了半天有點(diǎn)暈,所以新建了一個(gè)winform工程添加了一個(gè)按鈕,然后找出調(diào)用的程序,一對(duì)比做了一個(gè)類似的示例,就明白了??创a有時(shí)候比看文檔來得更快。
所以還是一貫的原則,來干的,不來稀的。
using System; namespace TestEventArgs { /// <summary> /// 這個(gè)類對(duì)應(yīng)于EventArgs,做對(duì)比學(xué)習(xí)。 /// 添加兩個(gè)內(nèi)容:info1,info2。 /// </summary> public class MyEventArgs : EventArgs { private String info1; private UInt32 info2; public MyEventArgs(String info1, UInt32 info2) { this.info1 = info1; this.info2 = info2; } public String Info1 { get { return this.info1; } set { this.info1 = value; } } public UInt32 Info2 { get { return this.info2; } set { this.info2 = value; } } } /// <summary> /// 仿真Button按鈕 /// </summary> public class MyButton { public delegate void MyEvnetHandler(object sender, MyEventArgs e); /// <summary> /// 按鈕點(diǎn)擊的次數(shù)計(jì)數(shù)器 /// </summary> public static UInt32 clicked_num = 0; public event MyEvnetHandler MyClick; public void 觸發(fā)() { MyEventArgs arg = new MyEventArgs(DateTime.UtcNow.ToString(), ++clicked_num); MyClick(this, arg); } } /// <summary> /// 仿真Form窗體 /// </summary> public class MyForm { public MyButton 按鈕; public MyForm() { 按鈕 = new MyButton(); 按鈕.MyClick += new MyButton.MyEvnetHandler(this.button_Clicked); } public void button_Clicked(object sender, MyEventArgs e) { Console.WriteLine("button clicked(sender is:" + sender.ToString() + "; info1 = " + e.Info1 + "; info2 = " + e.Info2); } } class Program { static void Main(string[] args) { MyForm 窗體 = new MyForm(); for (int i = 0; i < 10; i++ ) { 窗體.按鈕.觸發(fā)(); System.Threading.Thread.Sleep(500); } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } } }
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
詳解C#如何利用爬蟲技術(shù)實(shí)現(xiàn)快捷租房
做為一個(gè)碼農(nóng),大部分都集中在一二線城市,所以租房也就無可避免,面對(duì)如今五花八門的租房信息,往往很難找到合適的房子。本文教你如何利用爬蟲技術(shù)實(shí)現(xiàn)快捷租房,感興趣的可以了解一下2022-09-09C#使用OpenCvSharp4實(shí)現(xiàn)讀取本地視頻
OpenCvSharp4庫是一個(gè)基于.Net封裝的OpenCV庫,這篇文章主要介紹了C#使用OpenCvSharp4實(shí)現(xiàn)讀取本地視頻的詳細(xì)教程,有需要的小伙伴可以參考下2024-01-01C#中的靜態(tài)成員、靜態(tài)方法、靜態(tài)類介紹
本文主要介紹了C#中的靜態(tài)成員、靜態(tài)方法、靜態(tài)類的基礎(chǔ)的使用,并做了相關(guān)的代碼演示,供初學(xué)者參考。2016-03-03C#實(shí)現(xiàn)獲取多維數(shù)組的行數(shù)與列數(shù)
這篇文章主要為大家詳細(xì)介紹了C#如何分別使用Array.GetUpperBound方法和Array.GetLength方法實(shí)現(xiàn)獲取多維數(shù)組的行數(shù)與列數(shù),需要的可以參考下2024-02-02C# .net core HttpClientFactory用法及說明
這篇文章主要介紹了C# .net core HttpClientFactory用法及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11