關于C#中GUI編程的標準事件問題_第1頁
關于C#中GUI編程的標準事件問題_第2頁
關于C#中GUI編程的標準事件問題_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第關于C#中GUI編程的標準事件問題昨天的文章,帶大家簡單學習C#中的事件,了解訂閱者和發(fā)布者之間的邏輯關聯,也通過小案例進行實際操作,可以看到具體的輸出結果。

目前在工作中,使用Winform桌面開發(fā)比較多,很多時候就會用到事件,此時這里的事件用法有一個俗稱叫GUI編程。

在程序運行時,它可以在任何時候被打斷,比如按鈕點擊,按下按鍵或系統定時器。在這些情況發(fā)生時,程序需要處理事件然后繼續(xù)其他事情。

在WindowsGUI編程中經常會用到程序事件的異步處理。

什么是GUI中的標準事件

這種程序事件.NET框架提供一個標準模式。使用System命名空間下的EventHandler委托類型。

publicdelegatevoidEventHandler(objectsender,EventArgse)

其中關于聲明EventHandle委托類型,這里需要注意以下三點:

第一個參數用于保存觸發(fā)事件的對象的引用第二個參數用于保存狀態(tài)信息,指明什么類型適用于該應用程序返回類型是void

關于第二個參數類型EventArgs這里特別需要說明下,它不是為了傳遞參數而設計的,當它用于不需要傳遞參數的事件處理程序時該忽略,如果需要傳遞參數那么就必須聲明一個派生自EventArgs的類,使用合適的字段來保存需要傳遞的數據

不管參數使用的實際類型是什么,Object類和EventArgs類都是基類。這樣EventHandler就可提供一個對所有事件和事件處理器都通用的簽名,只有兩個參數,而不是各自都有不同的簽名。

標準事件的用法

這里還繼續(xù)對昨天文章中的案例進行修改,阿輝訂閱了報社的報紙,當報社發(fā)報時,阿輝就能收到報紙進行閱讀。

這里需要注意:

聲明系統定義時使用EventHandler替換Handler阿輝訂閱者中的事件處理程序簽名應和事件委托的簽名匹配(不傳遞數據時可忽略)觸發(fā)事件的代碼在調用時必須使用適當的參數類型對象

報社

///summary

///報社

////summary

classNewspaperOffice

publiceventEventHandlerStartPublishPaper;//1、聲明事件

publicvoidPublish()

Console.WriteLine("已發(fā)布報紙!");

StartPublishPaper(this,null);//3、觸發(fā)事件,通知訂閱者收報紙進行閱讀

}

阿輝訂閱者

///summary

///阿輝訂閱者

////summary

classAhuiPeople

publicAhuiPeople(NewspaperOfficenpo)

npo.StartPublishPaper+=SubscriptinPaper;//2、訂閱事件

voidSubscriptinPaper(objectsender,EventArgse)

Console.WriteLine("阿輝接收到報紙,開始閱讀!");

}

觸發(fā)事件開始發(fā)報

staticvoidMain(string[]args)

NewspaperOfficenpo=newNewspaperOffice();

AhuiPeopleahuiPeople=newAhuiPeople(npo);

//報社發(fā)報

Console.WriteLine("報社計劃開始發(fā)報!");

npo.Publish();

Console.ReadKey();

}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論