MDI Container VS
MDI Container VS
Un formulario MDI es un formulario (llamado "Padre" o "Parent") que puede contener otros formularios (llamados "Hijos" o "Child").Para empezar creamos un proyecto "Windows Application" en VB, de forma automà tica se crea un formulario con nombre "Form1" lr pongo de texto Ejemplo MDI y en la ventana Propiedades, se busca la propiedad "IsMDIContainer" y se cambia a "True" tal como se muestra:
Ahora para hacerlo mas funcional o mas común se añadirá un MenuStrip
y después se definen entradas para el menú tal como se muestra
y ahora agregamos dos formularios mas al proyecto, que seran Form2 y Form3
En el Solution Explorer para el proyecto MDI WindowsApplication en VB tendremos
En el Solution Explorer para el Proyecto WindowsFormsApplication en C# tendremos:
Ahora se da doble click en modo diseño sobre la opción de menú empleado y copiamos este código en VB:
Private SubEmpleadoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesEmpleadoToolStripMenuItem.Click
Dim EmpleadoForm As New Form2
EmpleadoForm.MdiParent = Me
EmpleadoForm.Show()
End Sub
y dando doble click a la opción Consultar del menú se coloca el siguiente código en VB
PrivateSub ConsultarToolStripMenuItem_Click(ByVal sender AsSystem.Object, ByVale As System.EventArgs) Handles ConsultarToolStripMenuItem.Click
DimConsultarForm As NewForm3
ConsultarForm.MdiParent = Me
ConsultarForm.Show()
End Sub
Ahora el código equivalente doble click en modo diseño sobre la opción de menú empleado en C#
private voidempleadoToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 EmpleadoForm = newForm2();
EmpleadoForm.MdiParent = this;
EmpleadoForm.Show();
}
y dando doble click a la opción Consultar del menú se coloca el siguiente código en C#
privatevoid consultarToolStripMenuItem_Click(object sender, EventArgse)
{
Form3ConsultarForm = new Form3();
ConsultarForm.MdiParent = this;
ConsultarForm.Show();
}
Ahora en el evento Load del form podemos definir como se desea el tamaño para presentar el MDI Container, para VB queda asi:
PrivateSub Form1_Load(ByValsender As System.Object, ByVal e AsSystem.EventArgs) HandlesMyBase.Load
Me.WindowState = FormWindowState.Maximized
'Me.WindowState = FormWindowState.Minimized
'Me.WindowState = FormWindowState.Normal
End Sub
El evento load para el MDI Container en C# quedarÃa asÃ:
privatevoid Form1_Load(objectsender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
//this.WindowState = FormWindowState.Minimized;
//this.WindowState = FormWindowState.Normal;
}
y por ultimo, para que el formulario hijo aparezca centrado podemos agregar este código en el evento Load de los hijos que aparecerán dentro del formulario MDI en VB:
PrivateSub Form2_Load(ByValsender As System.Object, ByVal e AsSystem.EventArgs) HandlesMyBase.Load
Me.Top = Form1.Top + Form1.Height / 2 - Me.Height / 2
Me.Left = Form1.Left + Form1.Width / 2 - Me.Width / 2
End Sub
y el código equivalente en C# seria el siguiente.
privatevoid Form2_Load(objectsender, EventArgs e)
{
Form1mdi = new Form1();
Form2frm = new Form2();
frm.TopLevel = false;
frm.Parent = mdi;
frm.Location = new Point((mdi.Width - frm.Width) / 2, (mdi.Height - frm.Height) / 2);
frm.Show();
}
o igual en las propiedades del formulario hijo se puede especificar la posición en la que aparecerá, asÃ:
y ya.
COMENTA LA PUBLICACION