Bonjour les amis,
je débute en C# et suis souvent sur Developpez.com dans le mode RECHERCHE et FAQ. J'ai donc trouver cette FAQ Comment accèder à une méthode publique d'une form à partir d'une autre form créé par la première ? qui semblait répondre complètement à mon besoin mais j'ai du loupé quelque chose. Je vous explique donc mon cas :
mon projet contient :
- Une form du nom de mdiFond qui est mdiContainer
- mdiFond contient un menuStrip (tout ce qu'il y a de plus classique)
- Lorsque je clique sur Nouveau (un des éléments du menuStrip), je fais apparaitre une nouvelle form appelée mnuEleveur et en voici le code- Voici également le code de la méthode MAJBarreMenu (qui est de portée PUBLIC pour être accessible de partout)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private void nouveauToolStripMenuItem_Click(object sender, EventArgs e) { mnuEleveur frmEleveur = new mnuEleveur(); frmEleveur.MdiParent = this; frmEleveur.Text = "Nouvel éleveur"; frmEleveur.Show(); // La feuille apparait dans un ToolStripContainer tscMdiFond.ContentPanel.Controls.Add(frmEleveur); // Lancement de la méthode pour MAJ de la barre de menu MAJBarreMenu("FichierNouveau"); }
- Et maintenant voici le code de mon bouton ANNULER sur la seconde form mnuEleveur
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 public void MAJBarreMenu(string vLocation) { switch (vLocation) { case "FichierNouveau": // Menu Fichier this.fichierToolStripMenuItem.Enabled = true; this.nouveauToolStripMenuItem.Enabled = false; this.ouvrirToolStripMenuItem.Enabled = false; this.fermerToolStripMenuItem.Enabled = true; this.enregistrerToolStripMenuItem.Enabled = true; this.importToolStripMenuItem.Enabled = false; this.exportToolStripMenuItem.Enabled = true; this.imprimerToolStripMenuItem.Enabled = true; this.aperçuavantimpressionToolStripMenuItem.Enabled = true; this.quitterToolStripMenuItem.Enabled = true; // Menu Edition this.editionToolStripMenuItem.Enabled = true; this.annulerToolStripMenuItem.Enabled = false; this.rétablirToolStripMenuItem.Enabled = false; this.couperToolStripMenuItem.Enabled = true; this.copierToolStripMenuItem.Enabled = true; this.collerToolStripMenuItem.Enabled = false; this.sélectionnertoutToolStripMenuItem.Enabled = true; // Menu Outils this.outilsToolStripMenuItem.Enabled = true; this.personnaliserToolStripMenuItem.Enabled = true; this.optionsToolStripMenuItem.Enabled = false; break; case "OutilsOptions": // Menu Fichier this.fichierToolStripMenuItem.Enabled = true; this.nouveauToolStripMenuItem.Enabled = false; this.ouvrirToolStripMenuItem.Enabled = false; this.fermerToolStripMenuItem.Enabled = true; this.enregistrerToolStripMenuItem.Enabled = true; this.importToolStripMenuItem.Enabled = false; this.exportToolStripMenuItem.Enabled = false; this.imprimerToolStripMenuItem.Enabled = false; this.aperçuavantimpressionToolStripMenuItem.Enabled = false; this.quitterToolStripMenuItem.Enabled = true; // Menu Edition this.editionToolStripMenuItem.Enabled = true; this.annulerToolStripMenuItem.Enabled = false; this.rétablirToolStripMenuItem.Enabled = false; this.couperToolStripMenuItem.Enabled = true; this.copierToolStripMenuItem.Enabled = true; this.collerToolStripMenuItem.Enabled = false; this.sélectionnertoutToolStripMenuItem.Enabled = true; // Menu Outils this.outilsToolStripMenuItem.Enabled = false; this.personnaliserToolStripMenuItem.Enabled = true; this.optionsToolStripMenuItem.Enabled = false; break; case "default": // Menu Fichier this.fichierToolStripMenuItem.Enabled = true; this.nouveauToolStripMenuItem.Enabled = true; this.ouvrirToolStripMenuItem.Enabled = true; this.fermerToolStripMenuItem.Enabled = false; this.enregistrerToolStripMenuItem.Enabled = false; this.importToolStripMenuItem.Enabled = true; this.exportToolStripMenuItem.Enabled = false; this.imprimerToolStripMenuItem.Enabled = false; this.aperçuavantimpressionToolStripMenuItem.Enabled = false; this.quitterToolStripMenuItem.Enabled = true; // Menu Edition this.editionToolStripMenuItem.Enabled = false; this.annulerToolStripMenuItem.Enabled = false; this.rétablirToolStripMenuItem.Enabled = false; this.couperToolStripMenuItem.Enabled = true; this.copierToolStripMenuItem.Enabled = true; this.collerToolStripMenuItem.Enabled = false; this.sélectionnertoutToolStripMenuItem.Enabled = true; // Menu Outils this.outilsToolStripMenuItem.Enabled = true; this.personnaliserToolStripMenuItem.Enabled = true; this.optionsToolStripMenuItem.Enabled = true; break; default: break; } }
Dans le cas présent maMdi retourne toujours une valeur null et je ne comprends pas pourquoi. L'idée ici étant de remettre le menuStrip de ma feuille Mdi dans sa situation d'origine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private void cmdAnnuler_Click(object sender, EventArgs e) { mdiFond maMdi = (mdiFond)this.MdiParent; if (maMdi != null) maMdi.MAJBarreMenu("default"); // Fermeture du formulaire this.Close(); }
Merci d'avoir pris le temps de lire ce long post et en attendant une réponse vous souhaite d'excellentes fêtes de fin d'année.
Partager