2. Los formularios MDI son un tipo de formulario que contiene a otros
formularios dentro. Sirve de fondo de la aplicación y facilita la
distribución de las ventanas.
Un proyecto solo puede contener un formulario MDI, pero si todos
los formularios MDI secundarios que sean necesarios. Un formulario
MDI se denomina padre (Parent) y los secundarios hijos (Childs).
Formularios MDI
3. Es el contenedor de los
formularios secundarios.
Una aplicación solo puede tener
un formulario MDI.
Solo pueden contener controles
Toolbar, Statusbar y PictureBox.
No es posible colocar otro control
en el formulario MDI.
Agregar un formulario MDI padre:
Formulario MDI padre
4. Todo formulario hijo se encuentra
dentro del MDI padre.
Cuando se minimiza una ventana
hija, su icono aparece en la
ventana padre y no en la barra de
tareas. Cuando se maximiza una
ventana hija, ocupa toda el área
interna del formulario padre.
Agregar un formulario MDI hijo:
Los formularios MDI hijos son los
formularios normales, con la
propiedad MDIChild establecida a
True.
Formularios MDI hijos
5. Para crear un formulario MDI Padre que será
la ventana principal de la aplicación
Windows, sólo hay que configurar la
propiedad IsMdiContainer del formulario en
True, ya que por defecto esta es False.
Una vez creado el formulario MDI Padre, el
Visual Studio .NET permite agregar todo tipo
de controles, pero una buena práctica es
sólo tener menús y barras de herramientas
para organizar los comandos de la
aplicación.
El formulario MDI Padre creado se muestra
en el Diseñador de Formularios Windows
con un fondo gris más oscuro que el
tradicional fondo gris claro de los
formularios Windows, como se aprecia en la
siguiente figura:
Creando un formulario MDI padre
6. Para crear un formulario MDI Hijo que se muestre
dentro de la ventana principal de la aplicación
Windows, sólo hay que configurar la propiedad
MdiParent del formulario hijo asignándole el
formulario MDI Padre, tal como se muestra en el
siguiente código:
Creando un Formulario MDI Hijo
Nota: La propiedad MdiParent sólo está disponible en tiempo de ejecución, es
decir; es obligatorio, realizar la configuración mediante código.
Observación: Si no se configura la propiedad MdiParent del formulario hijo,
éste se muestra fuera del formulario MDI Padre.
Advertencia: Si se configura la propiedad MdiParent y se muestra el formulario
Hijo con el método ShowDialog se generará una Excepción.
7. Todos los formularios configurados con la propiedad MdiParent aparecerán
sobre el formulario MDI Padre, tal como se aprecia en la siguiente figura:
Ventana de un formulario MDI Padre conteniendo 3 Hijos
Creando un Formulario MDI Hijo