Handles

更新:2007 年 11 月

宣告由程序處理指定的事件。

 proceduredeclaration Handles eventlist

參數

  • proceduredeclaration
    將處理事件之程序的 Sub 程序宣告。

  • eventlist
    proceduredeclaration 要處理的事件清單。事件必須由目前類別的基底類別,或是由使用 WithEvents 關鍵字宣告的物件來引發。

備註

在程序宣告結尾使用 Handles 關鍵字,可以讓它處理以 WithEvents 關鍵字宣告之物件變數所引發的事件。Handles 關鍵字也可以使用於衍生類別,處理來自基底類別的事件。

程序的簽章必須符合 eventlist 中每個事件的簽章。

Handles 關鍵字和 AddHandler 陳述式都可以指定以特殊程序處理特殊事件,但兩者之間有差異。要定義程序以指定它處理特殊事件時,請使用 Handles 關鍵字。AddHandler 陳述式則會在執行階段將程序連接至事件。如需詳細資訊,請參閱 AddHandler 陳述式

對於自訂事件而言,應用程式會在加入程序做為事件處理常式時,叫用 (Invoke) 事件的 AddHandler 存取子 (Accessor)。如需自訂事件的詳細資訊,請參閱Event 陳述式

範例

Public Class ContainerClass
    ' Module or class level declaration.
    WithEvents Obj As New Class1

    Public Class Class1
        ' Declare an event.
        Public Event Ev_Event()
        Sub CauseSomeEvent()
            ' Raise an event.
            RaiseEvent Ev_Event()
        End Sub
    End Class

    Sub EventHandler() Handles Obj.Ev_Event
        ' Handle the event.
        MsgBox("EventHandler caught event.")
    End Sub

    ' Call the TestEvents procedure from an instance of the ContainerClass 
    ' class to test the Ev_Event event and the event handler.
    Public Sub TestEvents()
        Obj.CauseSomeEvent()
    End Sub
End Class

下列範例說明衍生類別如何使用 Handles 陳述式處理來自基底類別的事件。

Public Class BaseClass
    ' Declare an event.
    Event Ev1()
End Class
Class DerivedClass
    Inherits BaseClass
    Sub TestEvents() Handles MyBase.Ev1
        ' Add code to handle this event.
    End Sub
End Class

請參閱

概念

事件和事件處理常式

參考

WithEvents

AddHandler 陳述式

RemoveHandler 陳述式

Event 陳述式

RaiseEvent 陳述式