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 :

pb avec les ToolSripMenuItem


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 133
    Par défaut pb avec les ToolSripMenuItem
    Bonjour,

    J'ai un bouton ToolStripMenuItem (Bt1) j'ai crée dessus 3 autres boutons ToolStripMenuItem (Bt2,Bt3,Bt4).

    Ma question. Comment recuperer le nom ou l'index du bouton sur lequel j'ai clické parmi les trois boutons (Bt2,Bt3,Bt4).

    j'ai cherché j'ai trouvé la propriété "Bt1.DropDownItems" , mais il n'existe pas une propriété du genre itemIndex qui me donne l'index du bouton clické.

    Merci pour votre aide.

  2. #2
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Quand tu clic sur le menu, cela va levé un événement que tu as probablement attrapé dans ton code, par exemple via :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    Bt2_Click(Object sender, EventArgs e)

    Il te suffit alors de convertir le sender en Control et de récupérer sa propriété Name.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 133
    Par défaut
    oui, mais les elements du menu , je les créé dynamiquement.
    comment savoir aprés avoir creeé mes elements sur lequel j'ai clické.

    Par exemple je cree Bt20.

    comment apres savoir que j'ai clické sur Bt20.

    Merci.

  4. #4
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Tu les créer dynamiquement, ok, mais pour utiliser leur clic, tu t'abonnes bien à leur événement Click, non ?

    Sinon, je vois pas comment tu veux lancer un traitement quand on clique dessus.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 133
    Par défaut
    moi je veux recuperer le "name" de l'élément sur lequel j'ai clické aprés avoir créé dynamquement mes élément de mon menu. , apres j'exploite ce Name dans une procedure qui me permet d'afficher des éléments qui contiennent ce Name.

    Pour moi , je pense qu'il me faut un gestionnaire d'evenemt général pour tous les elements de mon menu , et en fonction de l'element clické , je recupere l'element en question et je peux alors recuperer son Name.

    Mais comment le faire.

  6. #6
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TheName=(Sender is ToolStripMenuItem) ?((ToolStripMenuItem)Sender).Name : "" ;

  7. #7
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 201
    Par défaut
    A chaque fois que tu crées un bouton tu t'abonnes à l'événement click correspondant. A ces événements tu associes toujours la mm fonction.

    Dans cette fonction tu récupère le nom via Le sender.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Button1.Click += new EventHandler(this.Btn_Click);
     
     
    void Btn_Click(Object sender,
                               EventArgs e)
        {
           Button clickedButton = sender as Button;
           if ( clickedButton != null)
           {
                 string name = clickedButton.Name
                 //et la tu appelles ton traitement avec name
           }
        }

  8. #8
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Pour chaque bouton créé
    {
      bouton.Click += gestionnaire de click bouton général
    }
    Ça c'est pour la création
    Dans le code de Chaminette j'ajouterais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (sender is Button)
    {
      (sender as button).Name etc... etc...
    }
    parce que tu peux très bien abonner un autre composant qu'un bouton au même gestionnaire...

  9. #9
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 201
    Par défaut
    Citation Envoyé par ppphil Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Pour chaque bouton créé
    {
      bouton.Click += gestionnaire de click bouton général
    }
    Ça c'est pour la création
    Dans le code de Chaminette j'ajouterais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (sender is Button)
    {
      (sender as button).Name etc... etc...
    }
    parce que tu peux très bien abonner un autre composant qu'un bouton au même gestionnaire...
    En fait le
    et
    est redondant. Il suffit de faire le deuxième.
    Si le sender n'est pas un boutton ça te rendra null. Et vaut mieux faire un test de nullité que deux casts pour les performances.

Discussions similaires

  1. probleme avec les processus
    Par saidi dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/02/2003, 00h18
  2. Pb avec les menus
    Par Ph. B. dans le forum XMLRAD
    Réponses: 6
    Dernier message: 29/01/2003, 11h57
  3. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59
  4. PB d'import avec les ActiveX sous BCB6
    Par dergen dans le forum C++Builder
    Réponses: 4
    Dernier message: 29/11/2002, 10h18
  5. Pbm avec les '&'...
    Par AmaX dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/08/2002, 11h08

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