Академический Документы
Профессиональный Документы
Культура Документы
Introducción
En este artículo, explicaremos como crear una aplicación MDI (Multiple Document Interface) con Visual
Basic .NET. Seguiremos los pasos iniciales de creación de aplicaciones MDI que nos faciliten la
Iniciaremos un nuevo proyecto con Visual Studio .NET al que daremos el nombre de MDI_Sample,
siendo éste, un proyecto de una aplicación de Windows, tal y como se muestra en la figura 1.
Inicialmente, nuestro proyecto es un proyecto de formulario Windows normal, pero nuestro deseo es que
nuestro formulario inicial sea un formulario MDI, por lo que deberemos asignar de alguna forma a este
Para ello, haremos clic sobre el formulario (para seleccionarlo) y acudiremos a la ventana de
Observaremos que nuestro formulario ha cambiado de aspecto tal y como se muestra en la figura 2.
Visual Basic . NET (Diseño de aplicación MDI)
Todo proyecto MDI, está formado por un formulario contenedor (el formulario MDI) y uno o varios
Por si aún no sabe como es una aplicación MDI o no conoce sus diferencias respecto de una aplicación
normal, le comentaré que un ejemplo de este tipo de aplicaciones lo forman Microsoft Excel o Microsoft
Para añadir un formulario a nuestra aplicación, bastará con seleccionar el proyecto en la ventana de
proyectos y pulsar el botón derecho del ratón, seleccionando del menú la opción Add > Add Windows
Form.
De esta manera, tendremos en nuestro proyecto un formulario padre Form1 y un formulario que lo
utilizaremos como formulario hijo, Form2, pero para indicar que el formulario Form2 será hijo de Form1,
Pero esto lo veremos más adelante, ya que antes, de aprender a llamar al formulario hijo y aprender a
situarlo dentro del formulario padre, practicaremos con el control MainMenu, el cuál insertaremos en el
Form1.
Lo primero que debemos hacer es añadir un control MainMenu al formulario Form1. Una vez insertado,
&Fichero
- &Archivo
--
- &Salir
Lo que queremos hacer es que cuando pulsemos en el menú Salir, la aplicación termine, mientras que al
pulsar en el menú Nuevo, la aplicación abra una nueva ventana dentro del documento o ventana
principal.
Las ventanas de una aplicación MDI, son tratados como documentos, por lo que hay que hacer
Deberemos cargar los documentos dentro del formulario padre. Esta carga se hace por código como
En primer lugar seleccionaremos la opción Salir de nuestra aplicación haciendo doble clic sobre ella y
Form1.vb
Me.Close()
Visual Basic . NET (Diseño de aplicación MDI)
End Sub
Repetiremos la misma acción con la opción Nuevo y en este caso, escribiremos el siguiente código
Form1.vb
MiForm.MdiParent = Me
MiForm.Show()
End Sub
En esta pequeña porción de código, observamos que en primer lugar declaramos el formulario hijo,
Form2, y sobre él, asignamos un formulario padre que corresponde con el formulario MDI, Form1.
Si ejecutamos nuestra aplicación, observaremos que al pulsar sobre la opción Nuevo, se abre un
documento dentro de la aplicación MDI, tantas veces como hayamos hecho clic sobre esa opción, sin
embargo, no tenemos forma de identificar las ventanas abiertas, ya que todas se abren con el mismo
título de ventana, y esto puede llevarnos al error o a una confusión entre ventanas que nos dificulte su
identificación.
Lo primero que podríamos hacer es definir una variable al inicio de la aplicación, que nos sirva de
De esta manera, definiremos los cambios dentro de la opción del menú Nuevo, que quedarían de la
siguiente forma:
Form1.vb
MiForm.MdiParent = Me
MiForm.Show()
intContador = intContador + 1
End Sub
De esta manera, tendremos una aplicación algo diferente a la que teníamos inicialmente, tal y como se
muestra en la figura 4.
Nota: Otra posibilidad adicional, es la de incrementar la variable defindida como estática con la nueva
función añadida en Visual Basic .NET para añadir valores a variables y que recuerdan a otros lenguajes
como C++.
intContador += 1
intContador = intContador + 1
Sin embargo, estas ventanas siguen apareciendo de una forma poco organizada, por lo que conviene
En Windows podemos hacer uso de un conjunto de funciones que nos permiten ordenar los documentos
Para hacer esto, acudiremos nuevamente al menú principal (control MainMenu) y añadiremos un nuevo
V&entana
- &Cascada
- Mosaico &Horizontal
- Mosaico &Vertical
Sin embargo, nuestro deseo es más ambicioso, y es que dentro de esta opción, aparezcan las ventanas
asociadas a nuestro documento, de tal manera que podamos saltar de una ventana a otra sin problemas
dentro de nuestra aplicación MDI, por lo que debemos indicar de alguna manera esta función, asi que
haremos un clic sobre la opción Ventana del menú y acudiremos a la ventana de propiedades.
Pero aún no hemos programado la posibilidad u opción de ordenar las ventanas en cascada, en una
Form1.vb
Me.LayoutMdi(MdiLayout.Cascade)
End Sub
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub
Código de la aplicación
Form1.vb
Inherits System.Windows.Forms.Form
[...]
'Opción Salir
Me.Close()
End Sub
'Opción Nuevo
MiForm.MdiParent = Me
MiForm.Show()
intContador += 1
End Sub
Visual Basic . NET (Diseño de aplicación MDI)
'Opción Cascada
Me.LayoutMdi(MdiLayout.Cascade)
End Sub
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub
Conclusión
Como vemos, la aplicación MDI es muy fácil de desarrollar con Visual Basic .NET. Respecto a Visual Basic
Tan sólo debemos tener en cuenta algunos cambios producidos para no cometer errores, aún así, en
pocas líneas de código como vemos, podemos desarrollar nuestra aplicación MDI, muy utilizadas por