Procedura: rimuovere un ToolStripMenuItem da un menu a discesa MDI (Windows Form)
In alcune applicazioni, il tipo di una finestra figlio di interfaccia a documenti multipli (MDI, Multiple Document Interface) può essere diverso dalla finestra padre MDI. Ad esempio, il padre MDI potrebbe essere un foglio di calcolo, mentre il figlio MDI potrebbe essere un grafico. In tal caso, è consigliabile aggiornare il contenuto del menu del padre MDI con il contenuto del menu del figlio MDI in quanto vengono attivate finestre figlio MDI di tipi diversi.
La procedura seguente usa le IsMdiContainerproprietà , AllowMerge, MergeActione MergeIndex per rimuovere una voce di menu dalla parte a discesa del menu padre MDI. Se si chiude la finestra figlio MDI, le voci di menu rimosse vengono ripristinate nel menu padre MDI.
Per rimuovere un menu MenuStrip da un menu a discesa MDI
Creare un form e impostarne la proprietà IsMdiContainer su
true
.Aggiungere MenuStrip a
Form1
e impostare la proprietà AllowMerge di MenuStrip sutrue
.Aggiungere una voce di menu di primo livello a
Form1
MenuStrip e impostare la relativa proprietà Text su&File
.Aggiungere tre voci di sottomenu alla
&File
voce di menu e impostarne Text le proprietà su&Open
,&Import from
eE&xit
.Aggiungere due elementi del sottomenu all'elemento del
&Import from
sottomenu e impostarne Text le proprietà su&Word
e&Excel
.Aggiungere un form al progetto, aggiungere MenuStrip al form e impostare la proprietà AllowMerge del
Form2
MenuStrip sutrue
.Aggiungere una voce di menu di primo livello a
Form2
MenuStrip e impostare la relativa proprietà Text su&File
.Aggiungere una
&Import from
voce di sottomenu al&File
menu diForm2
e aggiungere una&Word
voce di sottomenu al&File
menu.Impostare le MergeAction proprietà e MergeIndex delle
Form2
voci di menu, come illustrato nella tabella seguente.Voce di menu Form2 Valore MergeAction Valore MergeIndex file MatchOnly -1 Importa da PowerPivot MatchOnly -1 Word Remove -1 In
Form1
creare un gestore eventi per l'evento Click di&Open
ToolStripMenuItem.All'interno del gestore eventi inserire codice simile all'esempio di codice seguente per creare e visualizzare nuove istanze di
Form2
come figli MDI diForm1
: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(); }
Inserire codice analogo al seguente esempio di codice nel
&Open
ToolStripMenuItem per registrare il gestore eventi.Private Sub openToolStripMenuItem_Click(sender As Object, e As _ EventArgs) Handles openToolStripMenuItem.Click
this.openToolStripMenuItem.Click += new _ System.EventHandler(this.openToolStripMenuItem_Click);
Compilazione del codice
L'esempio presenta i requisiti seguenti:
Due controlli Form denominati
Form1
eForm2
.Un controllo MenuStrip su
Form1
denominatomenuStrip1
e un controllo MenuStrip suForm2
denominatomenuStrip2
.Riferimenti agli assembly System e System.Windows.Forms.
Vedi anche
.NET Desktop feedback