Bonjour,
J'ai un problème pour afficher un sous-menu dans un GridView. Je ne sais pas comment faire ?
Cela fonctionnait jusqu'à ce que je n'utilise pas la MouseDown de la GridView. Pour la GridView j'ai un menu associé (Pour ContextMenuEx -> buttonItem23 qui appartient à contextMenuBar1), mais voilà j'en ai besoin pour faire du Drag & Drop (qui fonctionne bien lui) en cette GridView et un TreeView.
J'arrive à détecter le fait que j'ai un clic droit, mais je ne sais pas comment appeler directement le sous-menu.
Je dois préciser que j'ai certainement pas mal de lacune en C# (quelques mois d'auto-apprentissage) et il est fort probable que je passe à côté de certaines évidences déclaratives ou d'appel pour ce sous-menu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // Affiche le menu contextuel sur clic droit if (e.Button == MouseButtons.Right) { // Presque bon, sauf que l'on veut le sous-menu : buttonItem23 this.contextMenuBar1.Show(); // Sous-menu contextuel // this.contextMenuBar1.Name = this.buttonItem23.Name; }
Pour le drag & drop, j'ai pris MouseDown pour déclarer un DoDragDrop. C'est ce que j'ai trouvé dans pas mal d'exemples et de tutoriels. Si vous pensez que je dois le faire ailleurs et que cela ne bloque pas le cliq droit, je suis preneur.
J'ai regardé dans les didacticiels ici, et les discussions sur ce forum et je n'ai pas trouvé de sujets qui s'approchent de ce problème que je vous soumets. Pour être complet, j'ai bien trouvé un article (menu contextuel) dans la liste des articles C#, mais il semble que l'exemple donné ne fonctionne pas
Je suis sous VS 2008 et pour Show il n'y aucun arguments acceptés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { Point p = new Point(e.X,e.Y); if(e.Button == MouseButtons.Right) contextMenu1.Show(button1,p); }
Merci par avance.
Partager