Chapter 4: Discussion and Conclusions
4.2 Interpretations
Las aplicaciones de interfaz de documentos múltiples son aplicaciones donde múltiples ventanas hijo residen bajo una sola ventana padre.
Las aplicaciones MDI permiten a múltiples ventanas compartir un solo menú y barra de herramientas de la aplicación. Las aplicaciones MDI a menudo tienen un menú llamado Ventana que permite a los usuarios administrar múltiples ventanas hijo ofreciendo características tales como cambiar entre ventanas hijo y organizar ventanas hijo. La Figura 5-6muestra al Microsoft Excel 2010 en modo MDI:
Figura 5-6
Microsoft Excel 2010 como una aplicación MDI
ETC IBEROÁMERICA
Las aplicaciones MDI contrastan con aplicaciones de interfaz de documentos simple (SDI) donde cada ventana contiene su propio menú y barra de herramientas. Las aplicaciones SDI se basan en el sistema operativo para proporcionar la funcionalidad de administración de ventana (por ejemplo, en Windows, puede cambian entre múltiples ventanas utilizando la Barra de Tareas de Windows).
Hay mucho debate entre los diseñadores de interfaz de usuario sobre qué interfaz de aplicación funciona mejor. Generalmente hablando, SDI es considerado más adecuado para usuarios novatos mientras que MDI es considerado más adecuado para usuarios avanzados. Muchas aplicaciones populares tales como Microsoft Word y Microsoft Excel soportan tanto SDI y MDI. Word y Excel se instalan por defecto como aplicaciones SDI pero proporcionan a los usuarios una opción para cambiar entre SDI y MDI. Por ejemplo, en Word 2010 y Excel 2010, puede cambiar a modo MDI desactivando la opción “Mostrar todas las ventanas en la barra de tareas” en el menú de opciones.
ÆCrear una aplicación MDI
PREPÁRESE. Lance el Microsoft Visual Studio y cree un nuevo proyecto de Aplicación de Windows Forms llamado MDIApplication.
1. Seleccione la ventana de Propiedades para el Form1 y establezca la propiedad Text a “MDI Application” y la propiedad IsMdiContainer a True.
2. Seleccione el control MenuStrip desde el Cuadro de Herramientas y agréguelo al formulario. Agregue un elemento del menú del nivel superior &Window, y agregue &New Window y &Arrange en el siguiente nivel. Bajo el menú Arrange, agregue tres opciones, &Cascade, &Horizontal y &Vertical, como se muestra en la Figura 5-7.
3. Para el control MenuStrip, establezca su propiedad MdiWindowListItem al nombre del menú Ventana (windowToolStripMenuItem por defecto).
4. En el Explorador de Soluciones, haga clic derecho en el proyecto y seleccione Agregar, Windows Form. Agregar Windows Form con el nombre ChildForm.
5. Haga doble clic en el formulario hijo y agregue el siguiente código para manejar el evento Load:
private void ChildForm_Load( object sender, EventArgs e) {
Text = DateTime.Now.ToString(); }
Tome Nota
Puede ser complicado implementar soporte para múltiples monitores en aplicaciones MDI ya que la ventana padre necesita extenderse a múltiples monitores. Figura 5-7 Agregando opciones de menú
ETC IBEROÁMERICA
www.pdftron.com
Tome Nota
El signo & antes de un carácter en un texto de menú no se muestra sino que hace del carácter un acceso directo al menú. Por ejemplo, el menú & Window puede ser invocado presionando Alt+W. Las teclas de acceso no serán notorias hasta que el usuario presione la tecla Alt. Una opción en Windows controla si las teclas de acceso directo son visibles o no.
6. En el formulario padre, haga doble clic en Ventana, el elemento del menú de Nueva Ventana y agregue el siguiente manejador de evento para su evento Click:
private void newWindowToolStripMenuItem_Click( object sender, EventArgs e)
{
ChildForm child = new ChildForm(); child.MdiParent = this;
child.Show(); }
7. En el formulario padre, haga doble clic en Window, Arrange, Cascade, Horizontal y Vertical, respectivamente y agregue manejadores de evento para sus eventos Click:
private void cascadeToolStripMenuItem_Click( object sender, EventArgs e)
{
LayoutMdi(MdiLayout.Cascade); }
private void horizontalToolStripMenuItem_Click( object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileHorizontal); }
private void verticalToolStripMenuItem_Click( object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileVertical); }
8. Seleccione Depurar y después Inicie la depuración (o presione F5) para ejecutar el proyecto. Seleccione Ventana, Nueva Ventana para crear múltiples ventanas hijo nuevas. Cambie entre las ventanas hijo. Note que solo hay una instancia de aplicación en la barra de tareas de Windows. Ahora utilice las opciones en menú Window, Arrange para ordenar las ventanas hijo. Por ejemplo, una aplicación con tres ventanas hijo podría parecerse a la imagen en la Figura 5-8 cuando las ventanas hijo son ordenadas horizontalmente.
Figura 5-8
Una aplicación MDI con tres ventanas hijo ordenadas
horizontalmente
ETC
IBEROÁMERICA
Revisemos algunas de las propiedades y métodos importantes utilizadas en este ejercicio. Primero, para el formulario padre, la propiedad IsMdiContainer está establecida como true. Esta propiedad indica que el formulario es un contenedor para múltiples formularios hijo MDI. Correspondientemente, para cada formulario hijo, establece la propiedad MdiParent para especifcar el formulario contenedor padre.
En seguida, la propiedad MdiWindowListItem del MenuStripes utilizado para indicar cuál elemento de menú será utilizado para mostrar la lista de ventanas hijo MDI. Cuando esta propiedad está establecida, el elemento de menú enlistará todas las ventanas hijo y también le permitirá cambiar entre ventanas hijo. Como resultado de un código en el método ChildForm_Load, la barra de título para cada formulario muestra la fecha y hora del instante cuando el formulario fue cargado.
Finalmente, el método LayoutMdies utilizado por los elementos de menú en el menú Ventana para ordenar las ventanas hijo. El método acepta un parámetro de tipo MdiLayout enumeration. El valor determina si la ventana hijo necesita mostrarse de forma horizontal o vertical, en cascada o como ícono.
Comprender las aplicaciones basadas en consola
È EN RESUMEN
Las aplicaciones de consola no tienen una interfaz de usuario gráfca y utilizan una ventana de consola de modo texto para interactuar con el usuario. Las aplicaciones basadas en consola son más adecuadas para tareas que no requieren de una interfaz de usuario.
Una aplicación de consola es ejecutada desde la ventana de consola. La entrada en la aplicación de consola puede ser proporcionada utilizando parámetros de la línea de comando o la aplicación de consola puede leer interactivamente caracteres desde la ventana de consola. Similarmente, la salida de la aplicación de consola también es escrita en la ventana de comandos . Puede habilitar la lectura o escritura a la consola creando una aplicación y utilizando la plantilla de Aplicación de Consola en Visual Studio.
También puede utilizar aplicaciones de consola para crear comandos que pueden ser ejecutados desde la línea de comando. Por ejemplo, puede tomar ventaja de las tuberías y fltros proporcionados por el sistema operativo para pasar la salida de un comando como entrada a otro comando, de este modo creando comandos más poderosos y combinando comandos simples.