none
Dans les procédures, que sont "sender" et "e" et à quoi servent-t-ils? RRS feed

  • Question

  • Bonjours,

    Dans des codes que Troxa m'a donnés hier (qui en passant sont excellents et fonctionne très bien, Merci) il y a ce petit "e qui m'intrigue...

    Alors ma question est simple:

    Dans les procédures, que sont "sender" et "e" et à quoi servent-t-ils?

    mardi 15 février 2011 19:01

Réponses

  • Le 15/02/2011 20:01, Monocle a écrit :
    > Bonjours,
     
    Bonjour,
     
    > Dans les procédures, que sont "sender" et "e" et à quoi servent-t-ils?
     
    Ce que sont "sender" et "e" a été évoqué.
    Leur intérêt apparaît lorsqu'une procédure évènementielle est attachée à
    plusieurs contrôles.
    Soit statiquement :
    Private Sub Button_Click(sender as Object, e as EventArgs) _
    Handles Butt1, Butt2, Butt3
    Soit dynamiquement
    AddHandler Me.Butt1.Click, AddressOf Me.Button_Click
    AddHandler Me.Butt2.Click, AddressOf Me.Button_Click
     
    Dans ce cas, la procédure ressemblera à cela
    Private Sub Button_Click(sender as Object, e as EventArgs)
        Dim buttonSource As Button = sender
        If buttonSource.Name = "..." Then
            '...
        End If
        '...
    End Sub
    Ou bien, si on gère des évènements en provenance d'objets hétérogènes
    Private Sub Control_Click(sender as Object, e as EventArgs)
        If TypeOf sender Is Button Then
            Dim buttonSource As Button = sender
            '...
        ElseIf TypeOf sender Is CheckBox Then
            '...
        End If
        ...
    End Sub
     
    --
    Fred
    foleide@free.fr
     
    • Marqué comme réponse Alex Petrescu lundi 21 février 2011 10:49
    mercredi 16 février 2011 06:58

Toutes les réponses

  • Bonsoir Monocle,

    En fait e et sender sont des paramètres qui dépendent de la fonction/procédure lorsqu'elle est associée à un évènement. En gros, sender contient les informations du contrôle/objet depuis lequel s'est exécuté la fonction, et e contient des informations comme par exemple la touche du clavier qui a été appuyée pour déclencher cette fonction/procédure.


    N'hésitez pas à poser des questions si un problème subsiste ou quelque chose n'est pas clair. Dans l'autre cas, veuillez indiquer que le problème est résolu. Cordialement.
    mardi 15 février 2011 19:33
  • Bonsoir,

    Je pense qu'il vous faudra un exemple concret avec le code que je vous ai donné ou cela est compréhensible ce que Michel vous a dit ?

    Je me lance dans un petit exemple si cela ne serait pas assez détailler demandé nous et on vous fera le détail :)

    Pour vous donnez un exemple vite fait creer un nouveau projet avec un bouton et double cliquer sur le bouton pour entrer dans la partie code cela ressemble a :

    • Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

      End Sub

    si vous savez utiliser une fonction, ou une routine c'est a quelque chose près la même chose ..., tout les controles ont ses sender et e avec ce qu'il lui a été assignée chaque controle ne retourne pas les meme informations ...

     

    A bientot


    Cordialement,
    Xavier
    Alias Troxsa My M@iL
    mardi 15 février 2011 20:50
    Auteur de réponse
  • Bonjour monocle,

    Tu peux par exemple et généralement afficher afin de te rendre compte :

    msgBox(sender.toString) ' ...

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire
    • Proposé comme réponse EhJoe mercredi 16 février 2011 06:42
    mercredi 16 février 2011 06:42
  • Le 15/02/2011 20:01, Monocle a écrit :
    > Bonjours,
     
    Bonjour,
     
    > Dans les procédures, que sont "sender" et "e" et à quoi servent-t-ils?
     
    Ce que sont "sender" et "e" a été évoqué.
    Leur intérêt apparaît lorsqu'une procédure évènementielle est attachée à
    plusieurs contrôles.
    Soit statiquement :
    Private Sub Button_Click(sender as Object, e as EventArgs) _
    Handles Butt1, Butt2, Butt3
    Soit dynamiquement
    AddHandler Me.Butt1.Click, AddressOf Me.Button_Click
    AddHandler Me.Butt2.Click, AddressOf Me.Button_Click
     
    Dans ce cas, la procédure ressemblera à cela
    Private Sub Button_Click(sender as Object, e as EventArgs)
        Dim buttonSource As Button = sender
        If buttonSource.Name = "..." Then
            '...
        End If
        '...
    End Sub
    Ou bien, si on gère des évènements en provenance d'objets hétérogènes
    Private Sub Control_Click(sender as Object, e as EventArgs)
        If TypeOf sender Is Button Then
            Dim buttonSource As Button = sender
            '...
        ElseIf TypeOf sender Is CheckBox Then
            '...
        End If
        ...
    End Sub
     
    --
    Fred
    foleide@free.fr
     
    • Marqué comme réponse Alex Petrescu lundi 21 février 2011 10:49
    mercredi 16 février 2011 06:58
  • Bonjour,

     

    Pour plusieurs informations sur les évènements et les délégués, je vous recommande la documentation MSDN. L’utilisation de l’objet « sender » et de la classe EventArgs est clarifiée dans ces articles.

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     


    Suivez MSDN sur Twitter 

    lundi 21 février 2011 10:48