Bonjour à tous,
Je travail avec visualC++ et les windows form.
J'ai un problème avec un contextmenu.
J'ai plusieurs picturebox, certaines ont un evenement "click" qui appèle une méthode, d'autres non. Je voudrais que lorsque je "clic droit" sur une picturebox qui a un evenement, que le menu s'affiche.
Or ce qui se passe, c'est que le menu s'affiche quelque soit l'endroit ou je "clic droit".
Voici mon code:
Je ne comprend pas, à aucun moment je lui dis de s'afficher, mais il s'affiche à chaque "clic droit".
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 //---------------------------------- //dans le constructeur de ma form //---------------------------------- System::Windows::Forms::ContextMenu^ mnuContextMenu = gcnew System::Windows::Forms::ContextMenu(); this->ContextMenu = mnuContextMenu; MenuItem^ Statistiques = gcnew MenuItem(); MenuItem^ Telnet = gcnew MenuItem(); Statistiques->Text = "Statistiques"; Statistiques->Click += gcnew System::EventHandler(this, &Form1::Click_Stat); Telnet->Text = "Telnet"; Telnet->Click += gcnew System::EventHandler(this, &Form1::Click_Telnet); mnuContextMenu->MenuItems->Add(Statistiques); mnuContextMenu->MenuItems->Add(Telnet); //-------------------------------- //méthode appelé lorsque la souris s'appuie sur une picturebox qui a un //evenement "clic" //-------------------------------- private: System::Void Picture_MouseDown(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { //transforme le pointer sur l'objet, en pointer sur une picturebox PictureBox^ Cible = (PictureBox^)sender; if(e->Button == System::Windows::Forms::MouseButtons::Left) { ... } else if(e->Button == System::Windows::Forms::MouseButtons::Right) { //affiche contextmenu ici!!! } }
Comment faire?
Merci d'avance à tous,
Persnip
Partager