IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Passage d'arguments à l'événement Click ; Possible?


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Passage d'arguments à l'événement Click ; Possible?
    Bonjour,

    J'ai un problème que je doute fort être le seul à l'avoir eu, mais impossible de trouver des infos sur le net, je m'en remet donc à vous, mon dernier espoir .

    Voila le contexte : J'ai plusieurs controls (radiobouttons exactement) abonnés à la même fonction pour l'événement "Click". La signature par default du délégué Click dans system est
    public delegate void EventHandler ( object sender, EventArgs e );
    Avec ce type de délégué, aucun passages d'arguments n'est possible, alors que mon obectif et de faire passer des arguments à la fontion en fonction du Controls qui a émis l'évenement Click.

    Comment faire donc?
    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Salut,

    L'évènement click n'étant pas généré par toi, tu ne peux transmettre de paramètres. Tu devrais plutot nous expliquerce que tu as besoin de faire exactement.

    PS: si tu veux retrouver qui a généré l'évènement, utilise le paramètre "sender", que tu dois caster dans le bon type de contrôle.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    J'ai en fait plusieurs radioButtons côtes à côtes, et je voudrais en fonction du radiobutton selectionné exécuter un code spécifique. Je pourrai définir pour chaqu'un de une fonction différente pour l'évenement click, mais étant donné que c'est un peu près le même code à chaque fois ce serais domage de faire du copier-coller...

    Ce que tu m'a dit en PS me conviendrait exactement, juste savoir juste qui a généré l'évenement serais suffisant.
    Par contre peux-tu m'expliquer un peu plus comment faire avec Sender?
    Je te remerci.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    C'est trés simple: le sender c'est le contrôle qui a généré l'évèvement, donc dans ton handler tu peux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    RadioButton RealSender = (RadioButton) sender;
    switch(RealSender.Name)
    {
       case "btn1": //code spécifique au btn1
       //etc...
    }

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Merci, ça marche du tonnerre !
    Je savais pas qu'on pouvais utiliser l'argument sender comme ça, ça va me débloquer pas mal de chose je pense .
    Encore merci!

    PS: Sans abuser, sais tu la commande pour parser juste le "5" d'un radiobutton nomée "radiobutton5" par exemple.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Regarde parmis tte les méthodes de la classe String , en particulier SubString devrait faire l'affaire.

  7. #7
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    SVP, penser à utilise les tags RESOLU et/ou DELESTAGE (situé en bas du sujet) quand vous estimez que le sujet a été correctement résolu ou qu'il n'est plus d'aucune utilité respectivement.


  8. #8
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    une autre idée qui vaut ce qu'elle vaut mais que j'affectionne particulièrement, c'est de mettre dans la propriété Tag de ton Controle (ici des radioButtons) une information dont tu te serviras au moment du click

    en utilsant le sender avec le cast proposé plus tot, et en faisant un

    RadioButton but = (RadioButton)sender;
    but.Tag = // Ton info.... tu pourras y mettre ce que tu veux

    Donc, dans ton tag, tu pourrais tres bien mettre un delegate, une classe, etc... bref, ce que tu veux... Ne te resteras plus qu'à caster ton Tag dans le bon objet et le tour est joué....

    C'est par exemple ainsi que tu pourrais associer des méthodes ou classes pour des noeuds de treeNode, etc... ou un radioButton
    (voir, simplement mettre dans le tag, l'index de ton radioButton (cela eviterait de faire du SubString ou autre)

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

Discussions similaires

  1. évènement click et arguments
    Par 3dward dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 11/01/2011, 11h48
  2. Passage d'arguments à un écouteur d'événements
    Par JockdiL dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 14/08/2009, 13h35
  3. Réponses: 10
    Dernier message: 15/05/2009, 10h35
  4. [web] passage d'arguments à un CGI
    Par ma2th dans le forum Web
    Réponses: 4
    Dernier message: 20/08/2004, 12h18
  5. passage d'argument à la procédure main ()
    Par Zazeglu dans le forum C
    Réponses: 5
    Dernier message: 01/09/2003, 19h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo