Martes 31 de marzo
Aplicaciones MDI.
En ocasiones las ventanas que necesita abrir una aplicación no son cuadros de diá- logo independientes, como los que acabamos de conocer, sino documentos adicionales dentro del mismo entorno la ventana principal. Con este fin puede utilizarse la técnica conocida como MDI (Multiple Document Interface), consistente en tener una ventana que actúa como madre de varias ventanas hija. Cada una de éstas puede maximizarse, minimizarse y abrirse de manera simultánea al resto de hijas.
Para crear una aplicación MDI lo primero que hemos de hacer es dar el valor true a la propiedad IsMDIContainer de la ventana principal, usualmente la que aparece por defecto al crear el proyecto. El fondo de dicha ventana cambiará de color, hacién- dose más oscura, lo cual la distingue del resto de ventanas. Además en esta ventana no se suelen insertar directamente controles como los que ya conocemos (listas, boto- nes, recuadros de texto), sino que toda su área queda, en principio, disponible para que la ocupen las hijas.
Ciertas partes de la ventana principal, no obstante, pueden ser ocupadas a fin de mostrar menús de opciones, barras de botones y herramientas. El caso más típico es el del menú principal que aparece en la parte superior. Para insertarlo no tenemos más que hacer doble clic sobre el componente MenuStrip, en el Cuadro de herramientas, y a continuación configurar el título y resto de propiedades de cada opción. El diseñador de menús resulta muy intuitivo: podemos escribir los títulos de las opciones directamente donde aparecerán, usando las teclas de desplazamiento del cursor para agregar nuevas opciones, menús y submenús. En la ventana Propiedades podemos configurar aspectos como el atajo de teclado o el icono asociado a cada opción. En la figura 4.7 puede verse la edición de un menú sencillo.
Figura 4.7. Introducimos las opciones del menú.
Cada opción del menú se comporta como un botón, generando el evento Click en el momento en que es seleccionada. Encontrándonos en el diseñador, haremos doble clic sobre las opciones para acceder al método de gestión de dicho evento, introduciendo las sentencias que deban ejecutarse en cada caso.
En cuanto a las ventanas hija, son formularios simples con la única particularidad de que su propiedad MDIParent contiene una referencia al formulario principal. Dado que en una aplicación MDI pueden abrirse tantos documentos como se necesiten, las ventanas hija van creándose a demanda del usuario, normalmente al elegir una cierta opción.
Suponiendo que tenemos un proyecto con el formulario inicial, a cuya propiedad IsMDIContainer ya hemos dado el valor true, vamos a agregar un nuevo formulario, eligiendo para ello la opción Proyecto>Agregar Windows Forms (véase la figura 4.8). Daremos a este formulario el nombre VentanaHija, identificador que además de actuar como nombre de archivo nos servirá para referirnos al formulario desde el código del programa.
Figura 4.8. Añadimos al proyecto un nuevo formulario Windows.
Insertaremos en el nuevo formulario un recuadro de texto, ya sea un TextBox o un RichTextBox, ocupando todo el área disponible. El aspecto y diseño de este formula- rio podría ser cualquiera, usando los controles básicos que ya conocemos.
Puede insertar un control RichTextBox, abrir el menú de tareas haciendo clic en el botón que aparece en la esquina superior derecha del control en el diseñador y elegir la opción Acoplar en contenedor principal para conseguir que ocupe todo el espacio disponible en la ventana.
A continuación volveremos al formulario principal, haremos doble clic sobre una de las opciones del menú diseñado previamente e introduciremos las sentencias siguientes en el editor de código:
VentanaHija UnaHija = new VentanaHija();
UnaHija.MdiParent = this; UnaHija.Show();
El formulario VentanaHija es una clase, como otra cualquiera, y la empleamos para crear un objeto: una ventana hija. Asignamos a la propiedad MdiParent de ésta una referencia al formulario principal, representado por la palabra clave this ya que estas sentencias están ejecutándose en ese formulario. Finalmente usamos el método Show para hacer visible la ventana.
Al ejecutar el programa comprobaremos que es posible usar la opción tantas veces como necesitemos, abriendo nuevas ventanas hija en el entorno de la ventana principal. Cada una de esas ventanas puede ajustarse en tamaño, minimizarse, maximizarse, etc. Recurriendo a los métodos de la ventana principal podríamos cambiar la disposición de las ventanas hija, cerrarlas todas, etc. Estas opciones suelen disponerse en un menú Ventana.
No hay comentarios.:
Publicar un comentario