共用方式為


使用事件

若要在應用程式中使用事件,您必須提供可執行程式邏輯以回應事件並且向事件來源 (Event Source) 註冊事件處理常式 (一種事件處理方法) 的事件處理常式。這個處理序稱為事件連接 (Event Wiring)。Windows Form 和 Web Form 的視覺化設計工具會提供可簡化或隱藏事件連接詳細資料的快速應用程式開發 (Rapid Application Development,RAD) 工具。

本主題說明處理事件的一般模式。如需 .NET Framework 中事件模型的概觀,請參閱事件和委派。如需 Windows Form 內事件模型的詳細資訊,請參閱 HOW TO:使用 Windows Form 應用程式中的事件。如需 Web Form 內事件模型的詳細資訊,請參閱 HOW TO:使用 Web Form 應用程式中的事件

事件模式

Windows Form 和 Web Form 中事件連接的詳細資料會因 RAD 工具所提供不同層級的支援而有所差異。然而,兩種案例都會遵循相同的事件模式,其特性如下:

  • 引發名為 EventName 之事件的類別具有下列成員:

    public event EventNameEventHandler EventName;
    
    Public Event EventName As EventNameEventHandler
    
  • EventName 事件的事件委派為 EventNameEventHandler,具有下列簽章:

    public delegate void EventNameEventHandler(object sender, EventNameEventArgs e);
    
    Public Delegate Sub EventNameEventHandler(sender As Object, e As EventNameEventArgs)
    

若要使用 EventName 事件,您的事件處理常式必須具有與事件委派同樣的簽章:

void EventHandler(object sender, EventNameEventArgs e) {}
Sub EventHandler(sender As Object, e As EventNameEventArgs)
Note注意事項

.NET Framework 中的事件委派名稱為 EventNameEventHandler,而文件中的事件處理常式一詞,則是指事件處理方法。這種命名配置所依據的邏輯是,EventNameEventHandler 委派會指向實際處理事件的事件處理常式 (方法)。

當事件沒有任何關聯的資料時,引發此事件的類別會使用 System.EventHandler 做為委派,並使用 System.EventArgs 做為事件資料。具有關聯資料的事件會使用衍生自事件資料型別之 EventArgs 的類別,和對應的事件委派型別。舉例來說,如果您想要處理某個 Windows Form 應用程式中的 MouseUp 事件,那麼事件資料類別便是 MouseEventArgs,而事件委派則是 MouseEventHandler。請注意,由於幾個滑鼠事件是使用通用的事件資料類別和通用的事件委派,所以命名配置並未完全符合上面所述的慣例。如果是滑鼠事件,事件處理常式必須具有下列簽章:

void Mouse_Moved(object sender, MouseEventArgs e){}
Sub Mouse_Moved(sender As Object, e As MouseEventArgs)

傳送者和事件引數參數會提供關於滑鼠事件的其他詳細資料給事件處理常式。傳送者物件表示引發此事件的原因。MouseEventArgs 參數會提供引發此事件之滑鼠移動的詳細資料。許多事件來源都會提供事件的額外資料,許多事件處理常式也會使用事件特定的資料來處理事件。如需說明使用事件特定資料引發和處理事件的範例,請參閱 HOW TO:引發和使用事件

Note注意事項

事件也會在使用者介面 (UI) 的內容之外引發,事實上,.NET Framework 包括許多可以引發事件的非 UI 類別。不過,所有遵循該模式的事件都已在此討論。

如需從類別引發事件的詳細資訊,請參閱引發事件

請參閱

工作

HOW TO:使用 Web Form 應用程式中的事件
HOW TO:使用 Windows Form 應用程式中的事件

概念

事件和委派
引發事件

其他資源

處理和引發事件