Comment : supprimer un ToolStripMenuItem d'un menu déroulant MDI (Windows Forms)
Dans certaines applications, le type d'une fenêtre enfant d'interface multidocument (MDI) peut être différent de celui de la fenêtre parente MDI. Par exemple, le parent MDI peut être une feuille de calcul et l'enfant MDI un graphique. Dans ce cas, vous souhaitez mettre à jour le contenu du menu du parent MDI avec le contenu du menu de l'enfant MDI à mesure que des fenêtres enfants MDI de types différents sont activées.
La procédure suivante utilise les propriétés et MergeActionAllowMergeMergeIndex les IsMdiContainerpropriétés pour supprimer un élément de menu dans la partie déroulante du menu parent MDI. La fermeture de la fenêtre enfant MDI restaure les éléments de menu supprimés dans le menu parent MDI.
Pour supprimer un MenuStrip d’un menu déroulant MDI
Créez un formulaire et affectez la valeur
true
à sa propriété IsMdiContainer.Ajoutez un MenuStrip à
Form1
et affectez la valeurtrue
à la propriété AllowMerge du MenuStrip.Ajoutez un élément de menu de niveau supérieur au MenuStrip de
Form1
et affectez la valeur&File
à sa propriété Text.Ajoutez trois sous-éléments à l’élément
&File
de menu et définissez leurs Text propriétés sur&Open
,&Import from
etE&xit
.Ajoutez deux éléments de sous-menu à l’élément
&Import from
de sous-menu et définissez leurs Text propriétés sur&Word
et&Excel
.Ajoutez un formulaire au projet, ajoutez un MenuStrip au formulaire et affectez la valeur
true
à la propriété AllowMerge du MenuStrip deForm2
.Ajoutez un élément de menu de niveau supérieur au MenuStrip de
Form2
et affectez la valeur&File
à sa propriété Text.Ajoutez un
&Import from
sous-menu au&File
menu deForm2
, puis ajoutez un&Word
sous-menu au&File
menu.Définissez les propriétés et MergeIndex les MergeAction propriétés des éléments de
Form2
menu, comme indiqué dans le tableau suivant.Élément de menu Form2 Valeur MergeAction Valeur MergeIndex Fichier MatchOnly -1 Importer à partir de MatchOnly -1 Word Remove -1 Dans
Form1
, créez un gestionnaire d’événements pour l’événement Click du&Open
ToolStripMenuItem.Dans le gestionnaire d’événements, insérez du code similaire à l’exemple de code suivant pour créer et afficher de nouvelles instances en
Form2
tant qu’enfants MDI deForm1
:Private Sub openToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles openToolStripMenuItem.Click Dim NewMDIChild As New Form2() 'Set the parent form of the child window. NewMDIChild.MdiParent = Me 'Display the new form. NewMDIChild.Show() End Sub
private void openToolStripMenuItem_Click(object sender, EventArgs e) { Form2 newMDIChild = new Form2(); // Set the parent form of the child window. newMDIChild.MdiParent = this; // Display the new form. newMDIChild.Show(); }
Insérez du code similaire à l'exemple de code suivant dans le
&Open
ToolStripMenuItem pour inscrire le gestionnaire d'événements.Private Sub openToolStripMenuItem_Click(sender As Object, e As _ EventArgs) Handles openToolStripMenuItem.Click
this.openToolStripMenuItem.Click += new _ System.EventHandler(this.openToolStripMenuItem_Click);
Compilation du code
Cet exemple nécessite :
deux Form contrôles nommés
Form1
etForm2
;un contrôle MenuStrip sur
Form1
nommémenuStrip1
et un contrôle MenuStrip surForm2
nommémenuStrip2
;des références aux assemblys System et System.Windows.Forms.
Voir aussi
.NET Desktop feedback