AddHandler, instruction
Associe un événement à un gestionnaire d’événements au moment de l’exécution.
Syntaxe
AddHandler event, {AddressOf eventhandler | expression }
Éléments
Élément | Description |
---|---|
event |
Nom de l’événement que vous souhaitez 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.
Notes
Les instructions AddHandler
et 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 procédure eventhandler
ou la lambda expression
) doit correspondre à la signature de l’événement event
.
Le mot clé Handles
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 les procédures aux événements au moment de l'exécution. Utilisez le mot clé Handles
quand vous définissez une procédure pour indiquer qu'elle gère un événement particulier. Pour plus d’informations, consultez Descripteur.
Un gestionnaire ajouté avec une lambda explicite NE PEUT PAS être supprimé ultérieurement (à l’aide de RemoveHandler
). En effet, si la lambda ne reçoit pas de nom, il n’est pas possible de la référencer ultérieurement. Toutefois, l’affectation de la lambda à une variable et l’ajout du gestionnaire via cette variable permet de supprimer le gestionnaire à l’aide de cette variable.
Notes
Pour les événements personnalisés, l’instruction AddHandler
appelle l’accesseur AddHandler
de l’événement. Pour plus d’informations sur les événements personnalisés, consultez Instruction d’événement.
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