Partager via


AddHandler, instruction

Associe un événement à un gestionnaire d’événements au moment de l’exécution.

Syntaxe

AddHandler event, {AddressOf eventhandler | expression }

Pièces

Composant Descriptif
event Nom de l’événement à gérer.
eventhandler Nom d’une procédure qui gère l’événement.
expression Expression lambda qui gère l’événement.

Les parties AddressOf eventhandler et expression s’excluent mutuellement.

Remarques

Les AddHandler instructions RemoveHandler vous permettent de démarrer et d’arrêter la gestion des événements à tout moment pendant l’exécution du programme.

La signature du nouveau gestionnaire d’événements (la eventhandler procédure ou l’expression expression lambda) doit correspondre à la signature de l’événement event.

Le Handles mot clé et l’instruction AddHandler vous permettent de spécifier que des procédures particulières gèrent des événements particuliers, mais il existe des différences. L’instruction AddHandler connecte des procédures aux événements au moment de l’exécution. Utilisez le mot clé lors de la Handles définition d’une procédure pour spécifier qu’elle gère un événement particulier. Pour plus d’informations, consultez Handles.

Un gestionnaire ajouté avec une lambda explicite NE PEUT PAS être supprimé ultérieurement (à l’aide RemoveHandlerde ). En effet, si l’expression lambda n’est pas nommée, il n’est pas possible de la référencer ultérieurement. Toutefois, l’affectation de l’lambda à une variable et l’ajout du gestionnaire via cette variable permet de supprimer le gestionnaire à l’aide de cette variable.

Remarque

Pour les événements personnalisés, l’instruction AddHandler appelle l’accesseur de l’événement AddHandler . Pour plus d’informations sur les événements personnalisés, consultez l’instruction Event.

Exemple :

Sub TestEvents()
    Dim Obj As New Class1
    ' Associate an event handler with an event.
    AddHandler Obj.Ev_Event, AddressOf EventHandler
    ' Call the method to raise the event.
    Obj.CauseSomeEvent()
    ' Stop handling events.
    RemoveHandler Obj.Ev_Event, AddressOf EventHandler
    ' This event will not be handled.
    Obj.CauseSomeEvent()
    ' Associate an event handler with an event, using a lambda.
    ' This handler cannot be removed.
    AddHandler Obj.Ev_Event, Sub ()
        MsgBox("Lambda caught event.")
    End Sub
    ' This event will be handled by the lambda above.
    Obj.CauseSomeEvent()
End Sub

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

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

Voir aussi