共用方式為


WithEvents 和 Handles 子句

更新:2007 年 11 月

WithEvents 陳述式和 Handles 子句讓您以宣告的方式來指定事件處理常式。透過任何適用於該事件之具有 Handles 陳述式的程序,即可處理藉由 WithEvents 關鍵字所宣告之物件所引發的事件,如以下範例所示:

' Declare a WithEvents variable.
Dim WithEvents EClass As New EventClass

' Call the method that raises the object's events.
Sub TestEvents()
    EClass.RaiseEvents()
End Sub

' Declare an event handler that handles multiple events.
Sub EClass_EventHandler() Handles EClass.XEvent, EClass.YEvent
    MsgBox("Received Event.")
End Sub

Class EventClass
    Public Event XEvent()
    Public Event YEvent()
    ' RaiseEvents raises both events.
    Sub RaiseEvents()
        RaiseEvent XEvent()
        RaiseEvent YEvent()
    End Sub
End Class

WithEvents 陳述式和 Handles 子句通常是事件處理常式的最佳選擇,原因在於它們所使用的宣告式語法能讓事件處理更容易編碼、讀取和偵錯。但請注意下列使用 WithEvents 變數的限制:

  • 您無法將 WithEvents 變數當做物件變數使用。也就是說,您無法將其宣告為 Object,而是當您宣告變數時,就必須指定類別名稱。

  • 因為未將共用事件繫結至類別執行個體,因此您不能以宣告方式使用 WithEvents 控制共用事件。同樣地,您也不能使用 WithEvents 或 Handles 處理 Structure 中的事件。在這兩種情況下,您都可以使用 AddHandler 陳述式控制這些事件。

  • 您無法建立 WithEvents 變數的陣列。

  • WithEvents 變數可讓單一事件處理常式處理一種或多種事件,或者是讓一個或以上的事件處理常式來處理相同的事件。

請參閱

概念

AddHandler 和 RemoveHandler

參考

Handles

WithEvents

AddHandler 陳述式