Sender et e

Signaler
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour,

J'ai besoin d'une petite precision.

J'utilise de temps en temps le code suivant pour appeller un evenement, avec ou sans la fonction Call. Cela m'evite de reecrire une partie du code.

            Call Button_Click(sender, Nothing)


Ma question concerne plus le role de "sender" et de "e".
Ici, j'utilise "Nothing" a la place de "e" et cela revient au meme.

J'ai eu l'occasion de lire des infos sur ces 2 parametres, mais il n'y a rien a faire, je ne comprends pas vraiment ou completement leur utilite ou plutot leur plein potentiel.

Question peut-etre un peu vague et meme stupide, mais avez-vous des explications (ou un bon lien) sur ce sujet pour que cela rentre dans ma petite tete?

A+,
JLuc01

6 réponses


Oupss!

Je répondais pour e. C'est la classe EventArgs.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
Bonjour,
Cela m'evite de reecrire une partie du code

me donne à penser que tu ferais aussi bien d'écrire ce code dans une procédure, appelable à ton gré, soit depuis le vrai clic, que depuis n'importe où, simplement !
Non ?
Je crois que sous vb.net ceci marcherait également, pour le bouton toto
toto.PerformClick
Mais pourquoi passer par un tel tremplin ? Un appel de procédure me semble plus sage.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
1
Bonsoir,

Oui, d'accord. Mais, si on a deja cet evenement Button_Click, pourquoi ne pas l'utiliser plutot que de creer une autre procedure. Ou alors, faut-il creer une procedure (ou fonction) et faire appel a cette procedure via cet evenement, puisqu'on en aura besoin dans cet evenement?
Bref, quel est la meilleure facon de faire? D'apres ce que tu ecrit, creer une procedure semble etre plus professionnel.

Tres juste aussi, on peut faire egalement:
Button.PerformClick()

Et je dois dire je prefere cette derniere methode (PerformClick), applicable cependant que pour l'evenement Click.

A part tout cela, je reviens sur ma question initiale: y-a-t-il une facon simple d'expliquer les termes Sender et e? A vrai dire, je comprends mieux le parametre Sender que le parametre e?

Par exemple, cet exemple de MSDN montre bien l'utilisation de Sender:

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click
   Dim s As String
   If sender Is Button1 Then
      s = "button1"
   ElseIf sender Is Button2 Then
      s = "button2"
   End If
   MessageBox.Show("You pressed: " + s)
End Sub


Mais pour le parametre e??? Je suis dubitatif.

A+
JLuc01

C'est écrit dans l'aide. C'est utilisé uniquement par le CLR.
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
1
Bonsoir,

En fait, j'ai trouve un bout de code sympa qui montre un peu l'utilisation du parametre e.
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MessageBox.Show(sender.name)
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Button1_Click(sender, e)
    End Sub
End Class

En bref, je dois juste penser a sender=Objet et e=Evenement. C'est evident, meme si leur utilisation ne l'est pas forcement.

Merci pour vos reponses.
JLuc01
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
ben le e sont les parametres des evenements...

permet d'avoir une plethore d'arguments, sans avoir un trop long prototype de fonction
permet de surcharger les evenements, en fournissant tel ou tel type d'arguments, etc.


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp