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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
ProgramaciónProgramación VisualVisual IIIngeniería en Telemática
� Obteniendo el formulario hijo activo� Obteniendo el formulario hijo activo
� Bibliografía
Programación Visual I
Ingeniería en Telemática2
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
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
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
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
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
Creación de un formulario hijo
3. Crear los formularios hijos y mostrarlos tras la ocurrencia de algún evento, ej: al ocurrir
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
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
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
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
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):