+ All Categories
Home > Documents > Tema7-Interfaz de Multiples Documentos

Tema7-Interfaz de Multiples Documentos

Date post: 25-Jul-2015
Category:
Upload: willfrank89
View: 117 times
Download: 5 times
Share this document with a friend
18
Programación Programación Visual Visual I Ingeniería en Telemática Tema 7: Interfaz para Múltiples Universidad Nacional Autónoma de Nicaragua León, Nicaragua Tema 7: Interfaz para Múltiples Documentos Ing. Ing. Denis Leopoldo Espinoza Hernández Denis Leopoldo Espinoza Hernández [email protected] Pre-requisito: Programación Orientada a Objetos Créditos: 4 Semestre: 6to
Transcript
Page 1: Tema7-Interfaz de Multiples Documentos

ProgramaciónProgramación VisualVisual IIIngeniería en Telemática

Tema 7: Interfaz para Múltiples

Universidad Nacional Autónoma de Nicaragua

León, Nicaragua

Tema 7: Interfaz para Múltiples

Documentos

Ing.Ing. Denis Leopoldo Espinoza HernándezDenis Leopoldo Espinoza Hernández

[email protected]

Pre-requisito: Programación Orientada a Objetos

Créditos: 4

Semestre: 6to

Page 2: Tema7-Interfaz de Multiples Documentos

Contenidos

� Aplicaciones MDI

� Creación de un formulario padre

� Creación de formularios hijos

� Organización de formularios hijos

� Fusión de menús de los formularios padre e hijo

� Obteniendo el formulario hijo activo� Obteniendo el formulario hijo activo

� Bibliografía

Programación Visual I

Ingeniería en Telemática2

Page 3: Tema7-Interfaz de Multiples Documentos

Aplicaciones MDI

En las aplicaciones Windows existen varios estilos de interfaz de usuario:

1. Interfaz de documento único (SDI – Single Document Interface)

2. Interfaz de documentos múltiples (MDI – Multiple Document Interface)

3. Interfaz tipo explorador

Las interfaz de múltiples documentos fue diseñada para simplificar el intercambio

información entre documentos dependientes todos de la misma aplicación.información entre documentos dependientes todos de la misma aplicación.

Cuando una aplicación MDI se ejecuta, aparece en primer lugar una ventana de aplicación

(ventana padre) la cual proporciona un espacio de trabajo para todas las ventanas de

documento que se creen (ventanas hijas).

Programación Visual I

Ingeniería en Telemática3

Page 4: Tema7-Interfaz de Multiples Documentos

Aplicaciones MDI

Un ejemplo de lo que estamos diciendo es la aplicación Microsoft Excel que permite crear y

mostrar varias ventanas de documentos de diferentes tipos.

Formulario

Padre

Formularios

Hijos

Programación Visual I

Ingeniería en Telemática4

Hijos

Page 5: Tema7-Interfaz de Multiples Documentos

Creación de un formulario padre

Para crear un formulario padre se deben de seguir los siguientes pasos:

1. Crear una aplicación para Windows la cual contendrá un formulario al que llamaremos

FormPadre.

2. 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.

Programación Visual I

Ingeniería en Telemática5

Page 6: Tema7-Interfaz de Multiples Documentos

Creación de un formulario padre

Es aconsejable asignar a la propiedad WindowState el valor Maximized, para

manipular más fácilmente los formularios hijos.

3. Se puede agregar una barra de menús para la manipulación de los formularios hijos,

ej: un menu Archivo con los elementos Nuevo y Cerrar que crearán y cerrarán 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.

Programación Visual I

Ingeniería en Telemática6

Page 7: Tema7-Interfaz de Multiples Documentos

Creación de un formulario hijo

Luego del formulario padre debemos crear el formulario que emplearemos para la creación

de los formularios hijos. Crear formularios hijos durante el tiempo de ejecución 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 suRichTextBox (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:

Programación Visual I

Ingeniería en Telemática7

Page 8: Tema7-Interfaz de Multiples Documentos

Creación de un formulario hijo

3. Crear los formularios hijos y mostrarlos tras la ocurrencia de algún 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();

La propiedad MdiChildren representa la matriz de tipo Form que identifica a los formularios

hijo del formulario padre.

Programación Visual I

Ingeniería en Telemática8

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();

}

Page 9: Tema7-Interfaz de Multiples Documentos

Creación de un formulario hijo

El resultado de la ejecución de la aplicación es el que se muestra en la figura siguiente:

El menú ventana muestra los títulos de los formularios hijos creados y nos permite indicar

cual se debe estar en primer plano.

Programación Visual I

Ingeniería en Telemática9

Page 10: Tema7-Interfaz de Multiples Documentos

Organización 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 método 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 enumeración Mdiayout: Cascade, TileHorizontal, TileVertical o

ArrangeIcons.

Programación Visual I

Ingeniería en Telemática10

Page 11: Tema7-Interfaz de Multiples Documentos

Organización de formularios hijos

Al implementar los controladores de los elementos Cascada, Horizontal y Vertical del menú

ventana tendríamos el siguiente resultado:

private void VentanaCascada_Click(object sender, EventArgs e)

{

LayoutMdi(MdiLayout.Cascade);

}

private void VentanaHorizontal_Click(object sender, EventArgs e)private void VentanaHorizontal_Click(object sender, EventArgs e)

{

LayoutMdi(MdiLayout.TileHorizontal);

}

private void VentanaVertical_Click(object sender, EventArgs e)

{

LayoutMdi(MdiLayout.TileVertical);

}

Programación Visual I

Ingeniería en Telemática11

Page 12: Tema7-Interfaz de Multiples Documentos

Obteniendo el formulario hijo activo

Durante la ejecución de una aplicación MDI, solo uno de los formularios se encuentra activo

(es decir posee el foco) en un momento determinado. Esta información nos la proporciona

el formulario Padre a través de la propiedad ActiveMdiChild.

Según esto podemos cerrar el formulario activo de nuestra aplicación 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.

Programación Visual I

Ingeniería en Telemática12

Page 13: Tema7-Interfaz de Multiples Documentos

Fusión de menús de los formularios Padre e Hijo

Los formularios hijos también pueden tener barra de menús. En las aplicaciones Windows

es normal que la barra de menús del formulario Padre se combine con la del formulario Hijo

para formar una sola barra de menús.

Supongamos que se tienen los siguientes formularios Padre e Hijo:

Cuando desde el formulario Padre se crea un formulario hijo los menús de cada uno de

ellos se combinan dando la siguiente apariencia.

Programación Visual I

Ingeniería en Telemática13

Page 14: Tema7-Interfaz de Multiples Documentos

Fusión de menús de los formularios Padre e Hijo

Para lograr la fusión de los dos menús debemos:

1. Establecer la propiedad AllowMerge de la barra de menús 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 fusión. Al fusionar dos menús debe tenerse en cuenta que cada uno

de ellos posee elementos que son parte de una colección 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 menús se colocan primero los elementos del menú

Padre y luego los del hijo sin importar si existen elementos duplicados.

Programación Visual I

Ingeniería en Telemática14

Elementos del

menú Padre

Elementos del

menú Hijo

Page 15: Tema7-Interfaz de Multiples Documentos

Fusión de menús de los formularios Padre e Hijo

b. Insert: Inserta los elementos del menú hijo dentro del otro menú ordenándolos segúnel valor establecido en la propiedad MergeIndex.

El resultado sería el siguiente:

Formulario Padre Formulario Hijo

MergeAction: Append Append Insert Insert

MergeIndex: 0 3 1 2

Cuando existen coincidencias entre un elemento del menú Hijo y uno del Padre, loselementos del menú hijo tienen tres posibilidades en MergeAction.

c. Replace: El elemento del menú Padre es sustituido por el elemento del mismo nombredel 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 menús. Si noexiste alguna coincidencia, el elemento del menú hijo no será mostrado.

Programación Visual I

Ingeniería en Telemática15

Page 16: Tema7-Interfaz de Multiples Documentos

Fusión de menús 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 combinación de los elementos se lleva a cabo en

función 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ú PadreMenú Padre

Programación Visual I

Ingeniería en Telemática16

Elemento MergeAction MergeIndex

Archivo Append 0

ArchivoNuevo Append 0

ArchivoCerrar Append 4

Ventana Append 2

Page 17: Tema7-Interfaz de Multiples Documentos

Fusión de menús de los formularios Padre e Hijo

Menú Hijo

Elemento MergeAction MergeIndex

Archivo MatchOnly 0

ArchivoGuardar Insert 1

ArchivoGuardarComo Insert 2

Imprimir Insert 3

Edición Insert 1

Programación Visual I

Ingeniería en Telemática17

Edición Insert 1

Page 18: Tema7-Interfaz de Multiples Documentos

Bibliografía

Enciclopedia de Microsoft Visual C#, 2da Edición

Fco. Javier Ceballos Sierra

RA-MA

Capítulo 11, página 395

Programación Visual I

Ingeniería en Telemática18


Recommended