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 :

ToolStripItem Click Event?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 7
    Par défaut ToolStripItem Click Event?
    Bonjour amis développeurs.

    aujourd'hui je sollicite votre aide car ayant passé 3 jour a tout essayer dans mon code et à chercher sur le net une solution, je n'ai pas trouvé remède a mon problème que je vais donc vous exposer.

    http://djpsyko.free.fr/data/linkmanager.jpg


    //contexte
    Pour mon utilisation personnelle, je code une petite application qui me permet de gérer des 'raccourcis'. en effet, j'ai fais une class link qui illustre mes raccourcis ou liens, ceux ci ajoutés dynamiquement et rangé dans un toolstripmenu accessible via un click droit sur ma notify icon.
    Jusque la tout va bien, dans sa première version, les raccourcis étaient en desordre, en un bloc dans le menu, l'évènement click fonctionne parfaitement

    j'ai partagé mon menu contextuel avec des dropdown en 3 parties : executables, dossier, liens internetet pour classer automatiquement les liens selon leur propriété type de ma class link
    bon tout ca pour que vous compreniez mon délire.

    //problème
    maintenant que mes liens sont sur un niveau inférieur au contextmenustrip, je n'arrive a acceder a aucun évenement, ni même a utiliser un EventHandler pour assigner ma method onclick directement a la création du toolStripItem


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ToolStripMenuItem exe = new ToolStripMenuItem();
    exe.Text = "Programmes";
    exe.Image = Properties.Resources.icon_exe;
    exe.Click += new System.EventHandler(itemClicked);
     
    //exe est un élément du menu contextuel, qui contient tout les liens vers des objets link de type executable, que j'ajoute a mon contextMenuStrip
     
    if (iexe > 0)contextMenuStrip2.Items.Add(exe);
    //je teste simplement si ma collection de <link> contien au moins un élément de type éxécutable, pareil pour dossier et internet.
    J'ai essayé de créer cet élément a partir de la partie design de visual studio, et de regarder dans la partie designer du fichier.cs pour voir comment c'était géré mais je ne suis pas parvenu a reproduire ce que jy ai trouvé.


    Je vous remercie d'avance pour votre aide et vous souhaite une agréable fin de journée.

  2. #2
    Membre expérimenté
    Avatar de Proteus91
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 150
    Par défaut
    Hello PsyKorps,

    J'ai tenté de reproduir ton probleme mais sans succès...

    J'ai essayé ca et ca marche...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
            private void CreateContextMenu()
            {
                //Chargement Premier Niveau
                ToolStripMenuItem MyMenu = new ToolStripMenuItem();
                MyMenu.Text = "Programmes";
                MyMenu.Click += new EventHandler(MyMenu_Click);
     
                //Chargement Second Niveau
                ToolStripItem MySubMenu = new ToolStripMenuItem();
                MySubMenu.Text = "Sub Program 1";
                MySubMenu.Click += new EventHandler(MyMenu_Click);
                MyMenu.DropDown.Items.Add(MySubMenu);
     
                //Ajout dans le ContextMenu
                contextMenuStrip1.Items.Add(MyMenu);
            }
            private void MyMenu_Click(object sender, EventArgs e)
            {
                MessageBox.Show(((ToolStripItem)sender).Text);
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                CreateContextMenu();
            }
    Tu peux me montrer comment tu crées tes sous menus ?

    P.S. LA GUITARE C'EST LE MAL !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 7
    Par défaut
    woh merci d'avoir répondu !
    désolé pour mon absence j'avais quelques soucis a régler

    donc oui tu me dis que ca marche?

    donc j'ai compris ma bétises...et pas des moindres tu va bien rire je te met mon code tu comprendras ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
                    public void refreshLst()
                    {
                        int ifold = 0;
                        int iexe = 0;
                        int iinter = 0;
                        lst_link.Items.Clear();
                        contextMenuStrip2.Items.Clear();
     
     
                        ToolStripMenuItem exe = new ToolStripMenuItem();
                        exe.Text = "Programmes";
                        exe.Image = Properties.Resources.icon_exe;
                        exe.Click += new System.EventHandler(itemClicked);
     
                        ToolStripMenuItem fold = new ToolStripMenuItem();
                        fold.Text = "Dossiers";
                        fold.Image = Properties.Resources.icon_dossier;
                        ToolStripMenuItem internet = new ToolStripMenuItem();
                        internet.Text = "Internet";
                        internet.Image = Properties.Resources.icon_internet;
     
     
                        foreach (link l in links)
                        {
                            lst_link.Items.Add(l.Name);
                            if (l.Info == "Executable")
                            { iexe++; exe.DropDownItems.Add(l.Name,Properties.Resources.icon_exe); }
                            else if (l.Info == "Internet")
                            { iinter++; internet.DropDownItems.Add(l.Name,Properties.Resources.icon_internet); }
                            else
                            { ifold++; fold.DropDownItems.Add(l.Name,Properties.Resources.icon_dossier); }
                        }
     
     
                        if (iexe > 0) contextMenuStrip2.Items.Add(exe);
                        if (ifold > 0) contextMenuStrip2.Items.Add(fold);
                        if (iinter > 0) contextMenuStrip2.Items.Add(internet);
                    }

    je ne mettais pas l'évènement sur le submenu...
    mais alors dans ma boucle foreach je dois rajouter new toolStripMenu pour avoir accès a ces propriétés

    merci encore pour ton aide =)

  4. #4
    Membre expérimenté
    Avatar de Proteus91
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 150
    Par défaut
    Ça c'est de l'omission :p Tu vois le coins la bas o fond ? Dépêche toi t punis ! ^^

    Pense à valider les réponses et à mettre résolu.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 7
    Par défaut
    haha, oui chef ^^
    merci encore pour tout =)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel de méthode sur Click event
    Par Ant8386 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 03/11/2006, 12h10
  2. [C#]probleme avec un node click event
    Par zmerli dans le forum Windows Forms
    Réponses: 2
    Dernier message: 31/10/2006, 17h37
  3. [VB.Net] call click event
    Par Cirdan Telemnar dans le forum VB.NET
    Réponses: 10
    Dernier message: 30/05/2006, 14h49
  4. Réponses: 2
    Dernier message: 02/12/2005, 17h22
  5. [C#] TreeView Click Event
    Par bel.laurent dans le forum Windows Forms
    Réponses: 18
    Dernier message: 29/10/2005, 13h22

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