Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Menu contextuel

Sujet résolu
    14 août 2011 à 20:05:20

    Bonjour,

    je suis en train de reprendre une application que j'ai développé il y a un petit temps maintenant mais j'ai 2 soucis avec le menu contextuels.

    1° Le menu contextuel (objet contextMenuStrip) s'ouvre à chaque clic droit sur la form principal mais je ne sais plus comment et ou désactiver ca, je n'ai rien dans mon code qui permet de faire ca ?!

    2° J'aimerai qu'il s'ouvre quand on clic sur une image (ca fonctionne) mais il s'ouvre tout en haut à gauche de l'écran ?! Quelle propriétés dois je utiliser pour qu'il s'ouvre à coté du curseur ou de l'image ?

    merci d'avance et bonne soirée :)
    • Partager sur Facebook
    • Partager sur Twitter
      15 août 2011 à 16:25:06

      1) Dans les propriétés de ta Form tu as "ContextMenuStrip", tu n'a qu'a le redéfinir en tant que vide pour le désactiver puis le redéfinir lorsque tu veux le réactiver.

      private void desactiverMenuButton_Click(object sender, EventArgs e)
      {
         this.ContextMenu = new ContextMenu();
      }
      
      private void activerMenuButton_Click(object sender, EventArgs e)
      {
         this.ContextMenu = myContextMenuStrip;
      }
      


      2) Par défaut, le menu s'ouvre au pointeur de souris il me semble
      Sinon tu captes le clic sur ton image grâce à l'évènement Click, puis tu appelles la méthode Show du menu contextuel qui prend en paramètres les coordonnées que tu peux obtenir grâce à la propriété MousePosition.

      Cet extrait de code fonctionne avec tous les clic de la souris.
      private void pictureBox1_Click(object sender, EventArgs e)
      {
         contextMenuStrip1.Show(MousePosition.X + 10, MousePosition.Y + 10);
      }
      



      Sinon si tu possède un contrôle de type PictureBox, tu n'a qu'attribuer la propriété "ContextMenuStrip" à ton menu contextuel et ça se fait automatiquement ;)
      • Partager sur Facebook
      • Partager sur Twitter
        16 août 2011 à 10:47:30

        Haaaaa voila à quoi je ne pensais plus du tout, la propriété ContextMenuStrip x)

        Je me disais bien qu'il nous pouvais pas s'ouvrir tout seul par magie mais j'ai jamais penser à aller voir dans les propriété de ma form ...

        Et merci pour la méthode show, j'ai du la louper ... Bizarrement non, il s'ouvrait à chaque fois en haut à gauche.

        Merci beaucoup et bonne journée :)
        • Partager sur Facebook
        • Partager sur Twitter
          16 août 2011 à 15:06:46

          Mon exemple pour la méthode Show, j'ai ajoute +10 pixels aux coordonnées pour que tu puisses voir que tu peux vraiment décider ou placer ton menu. Dans le cas d'un utilisation concrète, tu peux enlever les "+10" :)
          • Partager sur Facebook
          • Partager sur Twitter
            17 août 2011 à 11:30:55

            Oui j'avais compris ^^

            Mais merci :p
            • Partager sur Facebook
            • Partager sur Twitter

            [C#] Menu contextuel

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown