11 Evénement et Handlers
Th3maz1ng edited this page 2024-08-19 20:52:29 +00:00

Evénement et Handlers

Retour

Nous allons voir ici comment associer un événement (clique de bouton, changement de texte dans un champ de saisie etc...) à un gestionnaire d'événement (Handler) et ce, de manière dynamique dans le code.

Cette méthode peut être pratique si vous instanciez dynamiquement des contrôles comme des boutons par exemple.

Lorsque le contrôle était instancié via le designer, vous faisiez comme cela :

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'Ici le code exécuté lorsque l'on appuis sur le bouton. 
    End Sub

Avec l'association dynamique, il faut procéder comme suit: On assigne l'événement à un gestionnaire (un Sub simple, ici Button_Click), par exemple lors de l'initialisation du contrôle ou de la fenêtre.

    'Les arguments Sender et e, sont respectivement l'objet qui fait l'appel (ici le bouton) et les informations sur son action
    'On les retrouves dans le premier exemple
    AddHandler Button1.Click, Sub(Sender, e) Button_Click(Sender, e)
    AddHandler Button2.Click, Sub(Sender, e) Button_Click(Sender, e)
    AddHandler Button3.Click, Sub(Sender, e) Button_Click(Sender, e)

Il nous reste ensuite à implémenter le gestionnaire :

    Private Sub Button_Click(sender As Object, e As EventArgs)
        'Pensez à rajouter un block Try Catch !
        CType(sender, Button).Text = "Clicked" 'Change le texte du bouton lorsque l'on clique dessus 
    End Sub

Attention Si l'événement est déclenché plus d'une fois, vérifiez que la fonction dans laquelle vous ajoutez vos gestionnaires ne soit pas éxécutée plus d'une fois.


Si vous avez des suggestions d'ajouts, de corrections, m'en faire part Merci

Dernière maj : 18/07/2019