Cómo: Insertar un elemento MenuStrip en 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 insertar un grupo de elementos de menú desde el menú del elemento secundario MDI a la parte desplegable del menú del elemento primario MDI. Al cerrar la ventana del elemento secundario MDI, se quitan los elementos de menú insertados del elemento primario MDI.

Para insertar un elemento MenuStrip en un menú desplegable MDI

  1. Cree un formulario y establezca su propiedad IsMdiContainer en true.

  2. Agregue una MenuStrip a Form1 y establezca la propiedad AllowMerge de la MenuStrip en true.

  3. Agregue un elemento de menú de nivel superior a la Form1MenuStrip y establezca su propiedad Text en &File.

  4. Agregue tres elementos de submenú al elemento de menú &File y establezca sus propiedades Text en &Open, &Import from y E&xit.

  5. Agregue dos elementos de submenú al elemento de submenú &Import from y establezca sus propiedades Text en &Word y &Excel.

  6. Agregue un formulario al proyecto, agregue una MenuStrip al formulario y establezca la propiedad AllowMerge de la Form2MenuStrip en true.

  7. Agregue un elemento de menú de nivel superior a la Form2MenuStrip y establezca su propiedad Text en &File.

  8. Agregue elementos de submenú al menú &File de Form2 en el orden siguiente: un elemento ToolStripSeparator, un elemento &SaveSave and &Close y otro elemento ToolStripSeparator.

  9. 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
    Separador Insertar 2
    Guardar Insertar 3
    Guardar y cerrar Insertar 4
    Separador Insertar 5
  10. Cree un controlador para el evento Click del ToolStripMenuItem&Open.

  11. 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 de Form1.

    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();  
    }  
    
  12. Incluya código similar al ejemplo de código siguiente en el &OpenToolStripMenuItem 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:

Vea también