Esto es una manera muy sencilla para que puedas abrir diferentes formularios dentro de uno, sin la necesidad de que el formulario abierto este adelante y tengas que cerrar para que vuelvas a usar el menú principal. (Lo que quería hacer era un formulario similar a una página maestra web, y lo único que se me ocurrió fue contenedores 😁)
Creamos nuestro formulario principal.
Debemos de activar la siguiente propiedad, IsMdiContainer = True
Puedes usar un menú o simples botones para abrir en el contenedor los otros formularios, en este caso inventario y usuarios.
Hacemos uso de cualquiera de estas herramientas, para este ejemplo usaré ToolStripContainer.
La herramienta ocupará todo el formulario.
Creamos los formularios que vamos abrir, inventario y usuarios.
En los botones del formulario principal escribimos los siguientes bloques de códigos, estos códigos te permiten abrir en el contenedor los otros formularios (Inventario y usuarios), por ejemplo el botón inventario abrirá el formulario inventario en el contenedor. Además estos formularios no pueden estar fuera del contenedor principal.
Botón inicio
Private Sub InicioToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles InicioToolStripMenuItem.Click Me.ToolStripContainer1.ContentPanel.Controls.Clear() End Sub
Botón inventario
Private Sub InventarioToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles InventarioToolStripMenuItem.Click Me.ToolStripContainer1.ContentPanel.Controls.Clear() Dim frminventario As New Inventario frminventario.MdiParent = Me Me.ToolStripContainer1.ContentPanel.Controls.Add(frminventario) frminventario.Show() End Sub
Botón usuarios
Private Sub UsuariosToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles UsuariosToolStripMenuItem.Click Me.ToolStripContainer1.ContentPanel.Controls.Clear() Dim frmusuarios As New Usuarios frmusuarios.MdiParent = Me Me.ToolStripContainer1.ContentPanel.Controls.Add(frmusuarios) frmusuarios.Show() End Sub
Resultado
Sin el ToolStripContainer1.ContentPanel.Controls.Clear(), permite abrir varios formularios repetitivos en el contenedor
Con el ToolStripContainer1.ContentPanel.Controls.Clear(), permite abrir solo un formulario a la vez en el contenedor.
En todo caso si no lograste entender, aquí te dejo el vídeo. 😀