Tema7-Interfaz de Multiples Documentos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 18

Universidad Nacional Autnoma de Nicaragua Len, Nicaragua

Programacin Visual I
Ingeniera en Telemtica

Tema 7: Interfaz para Mltiples Documentos

Pre-requisito: Programacin Orientada a Objetos Crditos: 4 Semestre: 6to

Ing. Denis Leopoldo Espinoza Hernndez [email protected]

Contenidos

Aplicaciones MDI Creacin de un formulario padre Creacin de formularios hijos Organizacin de formularios hijos Fusin de mens de los formularios padre e hijo Obteniendo el formulario hijo activo Bibliografa

Programacin Visual I Ingeniera en Telemtica

Aplicaciones MDI
En las aplicaciones Windows existen varios estilos de interfaz de usuario: 1. 2. 3. Interfaz de documento nico (SDI Single Document Interface) Interfaz de documentos mltiples (MDI Multiple Document Interface) Interfaz tipo explorador

Las interfaz de mltiples documentos fue diseada para simplificar el intercambio informacin entre documentos dependientes todos de la misma aplicacin. Cuando una aplicacin MDI se ejecuta, aparece en primer lugar una ventana de aplicacin (ventana padre) la cual proporciona un espacio de trabajo para todas las ventanas de documento que se creen (ventanas hijas).

Programacin Visual I Ingeniera en Telemtica

Aplicaciones MDI
Un ejemplo de lo que estamos diciendo es la aplicacin Microsoft Excel que permite crear y mostrar varias ventanas de documentos de diferentes tipos.

Formulario Padre Formularios Hijos

Programacin Visual I Ingeniera en Telemtica

Creacin de un formulario padre


Para crear un formulario padre se deben de seguir los siguientes pasos: 1. Crear una aplicacin para Windows la cual contendr un formulario al que llamaremos FormPadre. En el formulario principal establecemos a true el valor de la propiedad IsMDIContainer, esto provoca que el formulario pase a ser un contenedor MDI para formularios hijos.

2.

Programacin Visual I Ingeniera en Telemtica

Creacin de un formulario padre


Es aconsejable asignar a la propiedad WindowState el valor Maximized, para manipular ms fcilmente los formularios hijos. 3. Se puede agregar una barra de mens para la manipulacin de los formularios hijos, ej: un menu Archivo con los elementos Nuevo y Cerrar que crearn y cerrarn los formularios hijos y un men Ventana (menuVentana) que se encargar del seguimiento de los formularios hijos abiertos para lo cual se debe de establecer a la propiedad MdiWindowListItem de la barra de menus el valor menuVentana.

Programacin Visual I Ingeniera en Telemtica

Creacin de un formulario hijo


Luego del formulario padre debemos crear el formulario que emplearemos para la creacin de los formularios hijos. Crear formularios hijos durante el tiempo de ejecucin supondr crear objetos de la clase de este formulario y visualizarlos. 1. Agregar un nuevo elemento de tipo Windows Form al proyecto al que denominaremos FormHijo. Esto crear un formulario listo para lo que necesitemos. 2. Agregar los controles a emplear en el formulario, por ejemplo puede agregar un control RichTextBox (rtbTexto) y asigne a su propiedad Anchor el valor Top, Left y a su propiedad Dock el valor Fill. El resultado ser al como lo siguiente:

Programacin Visual I Ingeniera en Telemtica

Creacin de un formulario hijo


3. Crear los formularios hijos y mostrarlos tras la ocurrencia de algn evento, ej: al ocurrir el evento click del menu Nuevo de Archivo.
private void ArchivoNuevo_Click(object sender, EventArgs e) { FormHijo NuevoFormHijo; //Crear un nuevo formulario Hijo NuevoFormHijo = new FormHijo(); //Titulo del formulario NuevoFormHijo.Text = "Documento " + (MdiChildren.Length + 1).ToString(); //Establecer el Formulario actual como Padre del que estamos creando NuevoFormHijo.MdiParent = this; //Mostrar el formulario Hijo NuevoFormHijo.Show(); }

La propiedad MdiChildren representa la matriz de tipo Form que identifica a los formularios hijo del formulario padre.

Programacin Visual I Ingeniera en Telemtica

Creacin de un formulario hijo


El resultado de la ejecucin de la aplicacin es el que se muestra en la figura siguiente:

El men ventana muestra los ttulos de los formularios hijos creados y nos permite indicar cual se debe estar en primer plano.

Programacin Visual I Ingeniera en Telemtica

Organizacin de formularios hijos


Las aplicaciones MDI tienen un men llamado Ventana que contiene un grupo de opciones que permite organizar los formularios hijos abiertos.

El mtodo LayoutMdi permite organizar los formularios hijos en un formulario Padre MDI. La forma en la que los organiza depende del valor pasado como argumento, que ser uno de los valores de la enumeracin Mdiayout: Cascade, TileHorizontal, TileVertical o ArrangeIcons.

Programacin Visual I Ingeniera en Telemtica

10

Organizacin de formularios hijos


Al implementar los controladores de los elementos Cascada, Horizontal y Vertical del men ventana tendramos el siguiente resultado:
private void VentanaCascada_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.Cascade); } private void VentanaHorizontal_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.TileHorizontal); } private void VentanaVertical_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.TileVertical); }
Programacin Visual I Ingeniera en Telemtica

11

Obteniendo el formulario hijo activo


Durante la ejecucin de una aplicacin MDI, solo uno de los formularios se encuentra activo (es decir posee el foco) en un momento determinado. Esta informacin nos la proporciona el formulario Padre a travs de la propiedad ActiveMdiChild. Segn esto podemos cerrar el formulario activo de nuestra aplicacin de la siguiente manera:
private void ArchivoCerrar_Click(object sender, EventArgs e) { FormHijo FormHijoActivo = (FormHijo)ActiveMdiChild; if (FormHijoActivo != null) FormHijoActivo.Close(); } Desde el objeto FormHijoActivo tenemos acceso al formulario activo, sin embargo para poder acceder a los controles que este formulario tiene (ej. rtbTexto) dichos controles deben tener su modificador a public o crear propiedades (get y set) para el acceso a los mismo.

Programacin Visual I Ingeniera en Telemtica

12

Fusin de mens de los formularios Padre e Hijo


Los formularios hijos tambin pueden tener barra de mens. En las aplicaciones Windows es normal que la barra de mens del formulario Padre se combine con la del formulario Hijo para formar una sola barra de mens. Supongamos que se tienen los siguientes formularios Padre e Hijo:

Cuando desde el formulario Padre se crea un formulario hijo los mens de cada uno de ellos se combinan dando la siguiente apariencia.

Programacin Visual I Ingeniera en Telemtica

13

Fusin de mens de los formularios Padre e Hijo


Para lograr la fusin de los dos mens debemos: 1. Establecer la propiedad AllowMerge de la barra de mens tanto del Formulario Padre como del Formulario Hijo a true. 2. Emplear las propiedades MergeAction y MergeIndex para indicar la manera en la que se llevar a cano la fusin. Al fusionar dos mens debe tenerse en cuenta que cada uno de ellos posee elementos que son parte de una coleccin y por tanto debe de indicarse la manera en que estas dos colecciones van a combinarse. MergeAction indica la forma en que el men hijo se combinar con el men Padre y puede tener los siguientes valores: a. Append: Al fusionarse los dos mens se colocan primero los elementos del men Padre y luego los del hijo sin importar si existen elementos duplicados.

Elementos del men Padre Programacin Visual I Ingeniera en Telemtica

Elementos del men Hijo


14

Fusin de mens de los formularios Padre e Hijo


b. Insert: Inserta los elementos del men hijo dentro del otro men ordenndolos segn el valor establecido en la propiedad MergeIndex.
Formulario Padre Formulario Hijo

MergeAction: Append MergeIndex: 0

Append 3

Insert 1

Insert 2

El resultado sera el siguiente: Cuando existen coincidencias entre un elemento del men Hijo y uno del Padre, los elementos del men hijo tienen tres posibilidades en MergeAction. c. Replace: El elemento del men Padre es sustituido por el elemento del mismo nombre del men hijo. Si no existe alguna coincidencia, el elemento del men hijo no ser mostrado. d. Remove: Los elementos que coinciden son eliminados de la barra de mens. Si no existe alguna coincidencia, el elemento del men hijo no ser mostrado.
Programacin Visual I Ingeniera en Telemtica
15

Fusin de mens de los formularios Padre e Hijo


e. MatchOnly: En este caso se combinan los elementos del men Hijo y del men Padre que tenga el mismo nombre. Esta combinacin de los elementos se lleva a cabo en funcin de los valores de las propiedades MergeAction y MergeIndex. Para lograr el resultado anteriormente planteado debemos establecer los siguientes valores a los elementos del men (para los que no se indica su valor se deben de dejar los valores por defecto MergeAction a Append y MergeIndex a -1): Men Padre Elemento Archivo ArchivoNuevo ArchivoCerrar Ventana MergeAction Append Append Append Append MergeIndex 0 0 4 2

Programacin Visual I Ingeniera en Telemtica

16

Fusin de mens de los formularios Padre e Hijo


Men Hijo Elemento Archivo ArchivoGuardar ArchivoGuardarComo Imprimir Edicin MergeAction MatchOnly Insert Insert Insert Insert MergeIndex 0 1 2 3 1

Programacin Visual I Ingeniera en Telemtica

17

Bibliografa

Enciclopedia de Microsoft Visual C#, 2da Edicin Fco. Javier Ceballos Sierra RA-MA Captulo 11, pgina 395

Programacin Visual I Ingeniera en Telemtica

18

También podría gustarte