Comment appeler un gestionnaire d’événements dans Visual Basic

Un événement est une action ou une occurrence — telle qu’un clic de souris ou une limite de crédit dépassée — qui est reconnue par un composant de programme et pour laquelle vous pouvez écrire du code pour répondre. Un gestionnaire d’événements est le code que vous écrivez pour répondre à un événement.

Un gestionnaire d’événements dans Visual Basic est une procédure Sub. Toutefois, vous ne l’appelez pas normalement comme d’autres procédures Sub. Au lieu de cela, vous identifiez la procédure en tant que gestionnaire pour l’événement. Vous pouvez le faire avec une clause Handles et une variable WithEvents, ou avec une instruction AddHandler. L’utilisation d’une clause Handles est la méthode par défaut pour déclarer un gestionnaire d’événements dans Visual Basic. Il s’agit de la façon dont les gestionnaires d’événements sont écrits par les concepteurs lorsque vous programmez dans l’environnement de développement intégré (IDE). L’instruction AddHandler convient pour déclencher des événements dynamiquement au moment de l’exécution.

Lorsque l’événement se produit, Visual Basic appelle automatiquement la procédure du gestionnaire d’événements. Tout code qui a accès à l’événement peut le provoquer en exécutant une instruction RaiseEvent.

Vous pouvez associer plusieurs gestionnaires d’événements au même événement. Dans certains cas, vous pouvez dissocier un gestionnaire d’un événement. Pour plus d’informations, consultez Événements.

Appeler un gestionnaire d’événements à l’aide de Handles et de WithEvents

  1. Vérifiez que l’événement est déclaré avec une instruction d’événement.

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

  3. Dans la déclaration de la procédure de gestion des événements Sub, ajoutez une clause Handles qui spécifie la variable WithEvents et le nom de l’é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 effectuer l’événement.

    L’exemple suivant définit un événement et une variable WithEvents qui fait référence à la classe qui déclenche l’événement. La procédure de gestion des événements Sub 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
    

Appeler un gestionnaire d’événements à l’aide de AddHandler

  1. Vérifiez que l’événement est déclaré avec une instruction Event.

  2. Exécutez une instruction AddHandler pour connecter dynamiquement la procédure de gestion des événements Sub à 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 effectuer l’événement.

    L’exemple suivant utilise l’instruction AddHandler dans le constructeur pour associer la procédure OnFormClosing en tant que gestionnaire d’événements pour FormClosing.

    Sub New()
        InitializeComponent()
        AddHandler Me.FormClosing, AddressOf OnFormClosing
    End Sub
    
    Private Sub OnFormClosing(sender As Object, e As FormClosingEventArgs)
        ' Insert code to deal with impending closure of this form.
    End Sub
    

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

Voir aussi