Cómo: Quitar un elemento ToolStripMenuItem de un menú desplegable MDI (formularios Windows Forms)
En algunas aplicaciones, el tipo de ventana secundaria de una interfaz de múltiples documentos (MDI) puede ser diferente de la ventana primaria MDI. Por ejemplo, el elemento primario MDI podría ser una hoja de cálculo y el elemento secundario MDI podría ser un gráfico. En ese caso, querrá actualizar el contenido del menú del elemento primario MDI con el contenido del menú del elemento secundario MDI cuando se activan ventanas secundarias MDI de diferentes tipos.
En el procedimiento siguiente se usan las propiedades IsMdiContainer, AllowMerge, MergeAction y MergeIndex para quitar un elemento de menú de la parte desplegable del menú del elemento primario MDI. Si la ventana del elemento secundario MDI se cierra, los elementos de menú quitados se restauran en el menú del elemento primario MDI.
Para quitar un elemento menuStrip de un menú desplegable MDI
Cree un formulario y establezca su propiedad IsMdiContainer en
true
.Agregue una MenuStrip a
Form1
y establezca la propiedad AllowMerge de la MenuStrip entrue
.Agregue un elemento de menú de nivel superior a la
Form1
MenuStrip y establezca su propiedad Text en&File
.Agregue tres elementos de submenú al elemento de menú
&File
y establezca sus propiedades Text en&Open
,&Import from
yE&xit
.Agregue dos elementos de submenú al elemento de submenú
&Import from
y establezca sus propiedades Text en&Word
y&Excel
.Agregue un formulario al proyecto, agregue una MenuStrip al formulario y establezca la propiedad AllowMerge de la
Form2
MenuStrip entrue
.Agregue un elemento de menú de nivel superior a la
Form1
MenuStrip y establezca su propiedad Text en&File
.Agregue un elemento de submenú
&Import from
al menú&File
deForm2
y agregue un elemento de submenú&Word
al menú&File
.Establezca las propiedades MergeAction y MergeIndex de los elementos de menú
Form2
como se muestra en la tabla siguiente.Elemento de menú Form2 Valor de MergeAction Valor de MergeIndex Archivo MatchOnly -1 Importar desde MatchOnly -1 Word Quitar -1 En
Form1
, cree un controlador de eventos para el evento Click de&Open
ToolStripMenuItem.En el controlador de eventos, inserte código similar al ejemplo de código siguiente para crear y mostrar nuevas instancias de
Form2
como elementos secundarios 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(); }
Incluya código similar al ejemplo de código siguiente en el
&Open
ToolStripMenuItem para registrar el controlador de eventos.Private Sub openToolStripMenuItem_Click(sender As Object, e As _ EventArgs) Handles openToolStripMenuItem.Click
this.openToolStripMenuItem.Click += new _ System.EventHandler(this.openToolStripMenuItem_Click);
Compilar el código
Para este ejemplo se necesita:
Dos controles Form llamados
Form1
yForm2
.Un control MenuStrip en
Form1
llamadomenuStrip1
y un control MenuStrip enForm2
llamadomenuStrip2
.Referencias a los ensamblados System y System.Windows.Forms.
Vea también
.NET Desktop feedback