共用方式為


事件概觀 (Windows Forms .NET)

事件是您可以在程式碼中回應或「處理」的動作。 事件可由使用者動作產生,例如按一下滑鼠或按按鍵、程式碼或系統。

重要

.NET 7 和 .NET 6 的桌面指南檔正在建置中。

事件導向的應用程式會以執行程式碼的方式回應事件。 每份表單與控制項都會提供一組預先定義的事件讓您進行程式設計。 如果發生上述其中一個事件,而且有相關聯的事件處理常式程式碼,則會叫用該程式碼。

物件所引發的事件類型各有不同,但有許多類型為大多數控制項所共通。 例如,大部分物件都會處理 Click 事件。 若使用者按一下表單,便會執行表單之 Click 事件處理常式中的程式碼。

注意

許多事件會與其他事件連帶發生。 例如在發生 DoubleClick 的過程中,MouseDownMouseUpClick 事件會連帶發生。

如需如何引發和取用事件的相關資訊,請參閱 處理和引發事件

委派及其角色

委派是 .NET 中常用的類別,用來建置事件處理機制。 委派大致等同于函式指標,通常用於 Visual C++ 和其他物件導向語言。 不同之處在於委派為物件導向、類型安全,安全性也較好。 此外,如果函式指標只包含特定函式的參考,委派會包含物件的參考,以及物件內一或多個方法的參考。

此事件模型會使用 委派 ,將事件系結至用來處理事件的方法。 委派允許透過指定處理常式方法的方式,為事件通知登錄其他類別。 當事件發生時,委派即會呼叫所繫結的方法。 如需如何定義委派的詳細資訊,請參閱 處理和引發事件

委派可以繫結到單一方法或多個方法,稱為「多點傳送」。 建立事件的委派時,您通常會建立多播事件。 罕見的例外狀況可能是會導致特定程式(例如顯示對話方塊)的事件,而每個事件不會以邏輯方式重複多次。 如需如何建立多播委派的資訊,請參閱 如何合併委派(多播委派)。

多播委派會維護其系結之方法的調用清單。 多點傳送委派可以讓 Combine 方法新增方法到叫用清單,並支援 Remove 方法來移除此方法。

當應用程式記錄事件時,控制項便會叫用該事件的委派來引發事件。 委派會接著呼叫所繫結的方法。 在最常見的案例中,委派會接著呼叫調用清單中的每個系結方法,以提供一對多通知。 此策略表示控制項不需要維護事件通知的目標物件清單,委派會處理所有註冊和通知。

委派也可讓多個件繫結到同一方法,如此一來即可提供多對一通知。 例如按一下按鈕事件與按一下功能表命令事件都會叫用相同的委派,然後委派再呼叫一個方法,以相同方式處理這些個別的事件。

與委派搭配使用的系結機制是動態的:委派可以在執行時間系結至簽章符合事件處理常式的任何方法。 您可以利用此功能視條件設定或變更繫結方法,以及隨機將事件處理常式連結至控制項。

另請參閱