Bonjour à tous et toutes,
J'aimerais savoir comment faire pour utiliser un ContextMenu, qui est crée dans "Form1", dans une autre form "Form2"?
Tout d'abord, voici comment je crée la Form2 dans Form1.cs, comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 private void Form1_Load(object sender, EventArgs e) { Form2 desktopText = new Form2(); desktopText.Show(); }
J'ai essayé ceci, dans Form2.cs:
Ce qui me donne ces erreurs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public Form2() { InitializeComponent(); label1.ContextMenu = Form1.contextMenu1; }
J'ai donc essayé de modifier le contrôle dans Form1.Designer.cs:erreur CS0122: 'AK.Form1.contextMenu1' est inaccessible en raison de son niveau de protection
erreur CS0120: Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'AK.Form1.contextMenu1'
Mais ça n'a résolut que la première erreur, mais pas la deuxième:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 //changé private en public public System.Windows.Forms.ContextMenu contextMenu1;
erreur CS0120: Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'AK.Form1.contextMenu1'
Cependant, je sais que je peux faire ceci:
Dans Form2.Designer.cs:
Dans Form1.cs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 //changé private en public public System.Windows.Forms.Label label1;
Ca fonctionne, mais j'aimerais savoir comment accéder à ce ContextMenu directement dans Form2.cs, sans devoir modifier Form1.cs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 private void Form1_Load(object sender, EventArgs e) { Form2 desktopText = new Form2(); desktopText.Show(); desktopText.label1.ContextMenu = contextMenu1; }
Pouvez-vous m'aider SVP à comprendre mon erreur, ou y a t-il une meilleure méthode?
Merci d'avance et soyez indulgents je suis débutant![]()
Partager