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/déroulant au click de la souris


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 62
    Points
    62
    Par défaut Menu contextuel/déroulant au click de la souris
    bonjour a tous,

    Je souhaiterai réaliser un menu déroulant sur le click de la souris sur un bouton., un peu comme le clic droit de la souris sur le bureau du PC.
    Le problème, c'est que le menu doit être créer dynamiquement puisque le lieu du menu change en fonction des coordonnées de la souris.

    Je dois bien créer un menuContextuel mais celui-ci ne s'affiche pas. La propriété "Location" n'existe pas pour la création de ce contrôle. Donc je ne sais pas comment faire.

    Si vous connaissez de bons tuto, je suis preneuse. Merci bcp.

  2. #2
    Membre averti
    Homme Profil pro
    Freelance
    Inscrit en
    Février 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 312
    Points : 390
    Points
    390
    Par défaut
    a tu ajouter ton contextmenu en controle de ton bouton?
    monbouton.controles.add(moncontextmenu)

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 62
    Points
    62
    Par défaut
    Non, j'y avais pas pensé. En fait, je créais mon menu dans la fonction Bouton_MouseDown. Pas de bon endroit apparemment.

    Je viens de tester ce que tu m'a suggéré, il me mets une erreur : "Impossible d'ajouter un contrôle de premier niveau à un contrôle."

    Donc, je cherche. Je pense que je ne crée pas correctement mon Menu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ContextMenuStrip menu = new ContextMenuStrip();
    menu.Text = "gg";
    menu.Items.Add("c");
    Je vais m'orienter de ce coté.

  4. #4
    Membre confirmé Avatar de getz85
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 423
    Points : 462
    Points
    462
    Par défaut
    Peut-être faut-il utiliser la surcharge du constructeur ContextMenuStrip qui permet de renseigner le container du menu.

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2008
    Messages : 97
    Points : 62
    Points
    62
    Par défaut
    Voici un bon exemple de menu :
    Je me suis aidée de ce tuto : http://www.rcweb.fr/langage/csharp.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ContextMenu menu = new ContextMenu(); //un menu contextuel
    menu.Name = "menu"; //un menu contextuel
     
    MenuItem MenuSupprimer = new MenuItem(); //définition d'un menu
    MenuSupprimer.Text = "&Supprimer";//texte de l'élément du menu
    MenuSupprimer.Name = "&Supprimer";//texte de l'élément du menu
    menu.MenuItems.Add(MenuSupprimer);//ajout du menu supprimer au menu contextuel
    MenuSupprimer.Click += menuSupprimer_Click;   //on associe un clic sur le menu supprimer à la fonction menuSupprimerClick (ci-après)
     
    btn[i, j].ContextMenu = menu;//ajout du menu contextuel à monObjet
    Maintenant, j'ai un autre soucis.

    Etant donné que j'ai 2 événement sur mon button. L'une étant le menu et l'autre étant un mouseDown sur le bouton. Par défaut le système n'exécute que le MouseDown. Je ne vois par conséquent jamais mon menu déroulant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //sur click droit
    btn[i, j].ContextMenu = menu;//ajout du menu contextuel à monObjet
     
    //sur click gauche
    btn[i, j].MouseDown += btn_MouseDown;
    Pour résumé, j'ai un bouton. Je voudrais quand, je clique sur le bouton gauche de la souris effectuer un drag and drop et lorsque je clique sur le bouton droit qu'il affiche le menu déroulant.

    Auriez vous une idée de comment faire ?

  6. #6
    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
    Il suffit de faire cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private void BtnCreateNetwork_MouseDown(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {                
                }
                else
                {
                    MessageBox.Show("Hello world");
                }
            }
    comme ça, dans le cas du bouton droit, tu ne fais rien et donc le système
    affichera le menu contextuel (passé en propriété du bouton par exemple)
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

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

Discussions similaires

  1. Ajouter un menu contextuel au bouton droit de la souris pour les textboxes
    Par LiNuXaDDiKt dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/01/2008, 10h30
  2. Menu contextuel appelé par 2 cliques de souris !
    Par soso78 dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 27/07/2007, 21h11
  3. Menu contextuel click droit de la souris
    Par topolino dans le forum Windows
    Réponses: 3
    Dernier message: 21/02/2007, 11h47
  4. Menu contextuel associé à un click droit
    Par myspirou dans le forum C++Builder
    Réponses: 1
    Dernier message: 21/04/2006, 17h19
  5. 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, 13h19

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