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

Windows Forms Discussion :

Menu Contextuel sur un controle


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Par défaut Menu Contextuel sur un controle
    Bonjour, j'en suis toujours avec mon pti datagridview,
    et je voudrais lui créer un menu contextuel :
    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
     
                        private void CreerContextMenu()
                        {
                            //on initialise le menu contextuel
                            MenuColumnHeader = new ContextMenuStrip();
                            MenuColumnHeader.Size = new System.Drawing.Size(160, 48);
                            MenuColumnHeader.SuspendLayout();
                            //on initialise les sous menus
                            //Sous menu 1
                            EnvoyerColonnesaLaPlaceX = new ToolStripMenuItem();
                            EnvoyerColonnesaLaPlaceX.Text = "Envoyer cette colonne à la place : ";
                            EnvoyerColonnesaLaPlaceX.Size = new System.Drawing.Size(159, 22);
                            EnvoyerColonnesaLaPlaceX.Click += new EventHandler(EnvoyerColonnesaLaPlaceX_Click);
     
     
                            foreach (DataGridViewColumn column in this.DataGridView.Columns)
                            {
                                column.ContextMenuStrip = MenuColumnHeader;
                                column.ContextMenuStrip.Items.Add(EnvoyerColonnesaLaPlaceX);
                            }
                            MenuColumnHeader.ResumeLayout(true);
                        }
    Que j'appelle via ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            protected override void  OnMouseClick(DataGridViewCellMouseEventArgs e)
            {
               if(e.Button == MouseButtons.Right)
                {
                    CreerContextMenu();
     
                }
     	        base.OnMouseClick(e);
            }
    J'ai fait ainsi car plus tard je voudrais que le menu soit différent en fonction de la colonne du dtgv. Merci !

  2. #2
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Et c'est quoi la question ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Par défaut
    Ah oui désolé, ben en fait rien ne s'affiche..
    y'a un truc que je dois pas faire mais je vois pas quoi..

  4. #4
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Ce que tu fais pas, c'est afficher le menu

    Le plus simple reste de faire ton menu contextuel dans le designer, de masquer / désactiver certains menuItems à ta convenance dans le code, et de l'afficher au right-click sur la datagridview. C'est plus simple (et plus performant) que de re-créer un nouveau menu à chaque fois.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Par défaut
    Et pour info qu'est ce qui manque pour afficher mon menu ?

    Car en fait ce que je suis en train de faire c'est créer un Datagridview dans une classe perso, qui me servira dans d'autres programes.
    Donc ce que je voudrais, c'est intégré ce menu à ma classe. Et ne plus avoir à le recréer par le designer de VS.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Par défaut
    J'ai résolu mon souci mais maintenant je voudrais rendre les sous menu dynamiques. C'est à dire que leur nombre dépend d'une autre variable.
    Est ce possible, avec un tableau peut etre ?

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

Discussions similaires

  1. [MFC] Menu contextuel sur CListBox
    Par rabobsky dans le forum MFC
    Réponses: 2
    Dernier message: 21/02/2006, 14h11
  2. Menu contextuelle sur une liste?
    Par _developpeur_ dans le forum Access
    Réponses: 2
    Dernier message: 24/01/2006, 14h33
  3. Afficher un menu contextuelle sur le click droit d'une image
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/01/2006, 12h19
  4. Menu contextuel sur CStatic
    Par benahpets dans le forum MFC
    Réponses: 8
    Dernier message: 05/07/2005, 10h27
  5. [VB6] menu contextuel sur clique droit souris
    Par da40 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 08/07/2003, 11h07

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