Con el nuevo patrón de diseño de interfaces de usuario basado en Office 2007, se crea una nueva necesidad como algo común y que deberemos tener muy presente a la hora de asignar funcionalidad a nuestras aplicaciones.
Esta nueva necesidad es la de modificar propiedades de un formulario Hijo desde el formulario Padre y al contrario.
Pero os preguntaréis el porqué de lo que escribo, pues os lo explico:
Dentro de la guía de estilo de IU de Office 2007 se definen las “Main Ribbon Tabs” (o pestañas principales de “cintas”) que no son nada más que pestañas dentro del formulario principal (Parent) que contienen Ribbons (contenedores que agrupan botones (mayoritariamente) con funcionalidad común entre ellos) con botones dentro.
Pues bien, estos botones deben afectar o cambiar el contenido del documento o formulario activo, pero también podemos necesitar hacer lo opuesto, es decir que dependiendo del contenido que estemos tratando en cada momento estos Main Ribbon Tabs se modifiquen o cambien de estado.
Para lograr esto podemos recurrir a las siguientes líneas de código que nos permitirán acceder a las propiedades, métodos y eventos de un formulario Padre desde uno Hijo y a la inversa:
Acceder a un formulario Padre desde el Hijo:
frmPadre padre = (frmPadre)this.MdiParent;
padre.Text = «Formulario Padre – Modificado»;
Acceder a un formulario Hijo desde el Padre:
Método 1:
//Nos permite recorrer la coleción de formularios hijos abiertos
foreach (Form f in this.MdiChildren)
{
if (f.Text == «Formulario Hijo») f.Text = «Formulario Hijo»;
}
Método 2:
//Creamos una nueva instancia de un formulario hijo y cambiamos sus propiedades
frmHijo hijo = new frmHijo();
hijo.MdiParent = this;
hijo.WindowState = FormWindowState.Maximized;
hijo.Show();
Método 3:
//Modificamos una instancia ya creada de un formulario hijo activo
frmHijo hijo = ((frmHijo)this.ActiveMdiChild);
hijo.Text = «Formulario Hijo – Modificado»;
Espero que este pequeño Tip os sea de utilidad.