Uniones de menús en un formulario MDI

Descripción general

Esto es un pequeño apunte de los pasos a dar para hacer que en un formulario Mdi, se fusionen los menús del formulario Hijo y del formulario Padre. El proceso de mezcla de menús no es un proceso muy fino, sino bastante poco preciso, por lo que es preciso, antes de hacer nada, diseñar los menús y hacer pruebas para ver como quedan. El intentar mezclar dos menús que no se han preparado para unirse es una especie de desastre estético, es francamente difícil que quede bien.

[TOC] Tabla de Contenidos


↑↑↑

Uniones de menús en un formulario MDI


↑↑↑

A modo de Inicio

Primero.: Poner el valor [true] en la propiedad [menuStrip]. [Allowmerge]= true, de los menús [menuStrip], tanto del formulario padre como del formulario Hijo.

Segundo.: Los menús están organizados en una colección de índice cero (0) de forma que el primer menú es el numero 0 el segundo el 1 y así sucesivamente. Este dato hay que tenerlo en cuenta a la hora de colocar los menús como queramos que se sitúen, ya que hay que hacerse un pequeño diagrama del resultado final, de donde esta cada opción de menú y del numero índice que ocupan en ese menú desplegable empezando por el cero (0). Por cierto… los separadores también son una opción de menú y hay que asignarles su número.

Tercero.: La propiedad [MergeIndex] indica la posición en la que se colocará la opción de menú (hija) que se inserta en la colección de menús (padre). Una posición (-1) no hace nada

Cuarto.: la enumeración [MergeAction] solo funciona con los menús hijos


↑↑↑

Ejemplo Práctico

Para unir dos menús, en principio no hay que tocar nada, porque la propiedad [MenuStrip].[Allowmerge] toma el valor true por defecto y en cada opción de menú el valor de la propiedad [MergeAction]= Append (valor por defecto) y la propiedad [MergeIndex] tome el valor -1.

Después de ver cómo queda la mezcla de menús es cuando tenemos que intervenir.

Lo más normal es que queramos que un menú (principal) de los que aparecen e posición Horizontal aparezca en un lugar determinado. Eso se hace [MergeAction=Insert] [MergeIndex=Posición donde queremos que aparezca]. Recuerda que se empieza a contar por la Izquierda y a partir del valor cero (0)

Falta el texto Alt de la imagen
Falta el texto Alt de la imagen

El resultado de la mezcla puedes verlo en la figura siguiente. También puedes observar que lo que ha pasado es que se han puesto los menús (todos ellos) uno detrás de otro, de forma que aparecen repetidas opciones de menú como archivo, ventana, ayuda.

Falta el texto Alt de la imagen

↑↑↑

Ejercicio Mezclar los menus archivos

En primer lugar vamos a mezclar los menús de Archivo

Falta el texto Alt de la imagen
Falta el texto Alt de la imagen

Tenemos que cambiar los siguientes valores

Valores para mezclar el menú Archivo
Elemento del Form Hijo MergeAction MergeIndex
Archivo MatchOnly -1
Nuevo Insert 0
Load Insert 1
Save Insert 2
Imprime Insert 3
Separador Insert 4
CerrarHijo Insert 5

El resultado es el siguiente, en el que se observa que los menús están mezclados y que solo aparece un menú archivo en la barra de menús

Falta el texto Alt de la imagen

↑↑↑

Ejercicio Mezclar los Menús Ventanas

Falta el texto Alt de la imagen
Falta el texto Alt de la imagen

Realizaremos la misma operación que en el paso anterior pero en este caso tenemos la ventaja de que el menú Hijo tiene que colocarse al final de las opciones del menú padre, y es más fácil hacerlo

Tenemos que cambiar los siguientes valores

Valores para mezclar el menú Ventana
Elemento del Form Hijo MergeAction MergeIndex
Ventana MatchOnly -1
Separador Replace -1
Minimizar Append -1

Observa que el separador ponemos *Replace* porque si no nos saldrían dos separadores juntos, el inferior del menú del padre y el superior del menú del hijo, también puedes observar que solo aparece un menú ventana en el formulario padre

Falta el texto Alt de la imagen

↑↑↑

Ejercicio Mezclar los menus Ayuda.

Con este menú tenemos el problema de que (por motivos de ejemplo) son exactamente Iguales, y solo queremos que se una al menú padre uno de los componentes del menú hijo, los demás permanecerán en el menú hijo concretamente solo queremos que suba el menú *contenidos (h)*

Falta el texto Alt de la imagen
Falta el texto Alt de la imagen
Falta el texto Alt de la imagen
Falta el texto Alt de la imagen

En este caso solo queremos que se vea el menú *Contenidos Hijo* en el menú mezclado, los valores que tenemos que dar son los siguientes

Valores para mezclar el menú Ayuda
Elemento del Form Hijo MergeAction MergeIndex
Ayuda MatchOnly -1
Contenidos (h) Append 0
Separador Remove -1
Soporte Tecnico (h) Remove -1
Informar de un Bug (h) Remove -1
Separador Remove -1
Acerca De.. (h) Remove -1

↑↑↑

Ejercicio Mezclar el menú Bloc de Notas

Por último nos queda Colocar el menú *BlokNotas* en la tercera posición empezando por la izquierda

Valores para mezclar el menú Blok de notas
Elemento del Form Hijo MergeAction MergeIndex
Blok Notas Insert 2

El resultado es el siguiente

Falta el texto Alt de la imagen
Falta el texto Alt de la imagen
Falta el texto Alt de la imagen

↑↑↑

A modo de resumen

El proceso de mezcla de menús no es un proceso muy fino, sino bastante poco preciso, por lo que es preciso, antes de hacer nada, diseñar los menús y hacer pruebas para ver como quedan.

El intentar mezclar dos menús que no se han preparado para unirse es una especie de desastre estético, es francamente difícil que quede bien.


↑↑↑

A.2.Enlaces

[Para saber mas]
[Grupo de documentos]
[Documento Index]
[Documento Start]
[Imprimir el Documento]