Comment : appeler un gestionnaire d'événements en Visual Basic

Un événement est une action ou une occurrence (par exemple un clic de souris ou le dépassement d'un seuil de crédit) reconnue par un composant de programme pour laquelle vous pouvez écrire du code en réponse. Un gestionnaire d'événements est le code que vous écrivez pour répondre à un événement.

Un gestionnaire d'événements en Visual Basic est une procédure Sub. Toutefois, vous ne l'appelez normalement pas de la même manière que d'autres procédures Sub. À la place, vous identifiez la procédure comme un gestionnaire pour l'événement. Pour cela, vous pouvez utiliser soit une clause Handles, clause (Visual Basic) et une variableWithEvents (Visual Basic), soit une AddHandler, instruction. L'utilisation d'une clause Handles est la manière par défaut de déclarer un gestionnaire d'événements en Visual Basic. Les gestionnaires d'événements sont écrits de cette manière par les concepteurs lorsque vous programmez dans l'environnement de développement intégré (IDE). L'instruction AddHandler convient pour déclencher dynamiquement des événements au moment de l'exécution.

Lorsque l'événement se produit, Visual Basic appelle automatiquement la procédure de gestionnaire d'événements. Tout code qui a accès à l'événement peut déclencher celui-ci en exécutant une RaiseEvent, instruction.

Vous pouvez associer plusieurs gestionnaires d'événements au même événement. Dans quelques cas, vous pouvez dissocier un gestionnaire pour un événement. Pour plus d'informations, consultez Événements (Visual Basic).

Pour appeler un gestionnaire d'événements à l'aide de Handles et de WithEvents

  1. Assurez-vous que l'événement est déclaré avec une Event, instruction.

  2. Déclarez une variable objet au niveau du module ou de la classe, à l'aide du mot clé WithEvents (Visual Basic). La clause As pour cette variable doit spécifier la classe qui déclenche l'événement.

  3. Dans la déclaration de la procédure Sub de gestion des événements, ajoutez une clause Handles, clause (Visual Basic) qui spécifie la variable WithEvents et le nom d'événement.

  4. Lorsque l'événement se produit, Visual Basic appelle automatiquement la procédure Sub. Votre code peut utiliser une instruction RaiseEvent pour faire en sorte que l'événement se produise.

    L'exemple suivant définit un événement et une variable WithEvents qui font référence à la classe qui déclenche l'événement. La procédure Sub de gestion des événements utilise une clause Handles pour spécifier la classe et l'événement qu'elle gère.

    Public Class raisesEvent
        Public Event somethingHappened()
        Dim WithEvents happenObj As New raisesEvent
        Public Sub processHappen() Handles happenObj.somethingHappened
            ' Insert code to handle somethingHappened event. 
        End Sub 
    End Class
    

Pour appeler un gestionnaire d'événements à l'aide d'AddHandler

  1. Assurez-vous que l'événement est déclaré avec une instruction Event.

  2. Exécutez une AddHandler, instruction pour connecter dynamiquement la procédure Sub de gestion des événements avec l'événement.

  3. Lorsque l'événement se produit, Visual Basic appelle automatiquement la procédure Sub. Votre code peut utiliser une instruction RaiseEvent pour faire en sorte que l'événement se produise.

    L'exemple suivant définit une procédure Sub pour gérer l'événement Closing d'un formulaire. Il utilise ensuite l'AddHandler, instruction pour associer la procédure catchClose en tant que gestionnaire d'événements pour Closing.

    ' Place these procedures inside a Form class definition. 
    Private Sub catchClose(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs)
        ' Insert code to deal with impending closure of this form. 
    End Sub 
    Public Sub formOpened()
        AddHandler Me.Closing, AddressOf catchClose
    End Sub
    

    Vous pouvez dissocier un gestionnaire d'événements d'un événement en exécutant l'RemoveHandler, instruction.

Voir aussi

Tâches

Comment : créer une procédure (Visual Basic)

Comment : appeler une procédure qui ne retourne pas de valeur (Visual Basic)

Référence

Sub, instruction (Visual Basic)

Opérateur AddressOf (Visual Basic)

Concepts

Procédures dans Visual Basic

Procédures Sub (Visual Basic)