Hola, en esta ocasión realizaremos un Formulario de Menú Principal Plano, sin bordes y Moderno, con menú animado (Contraer-Expandir Menú), en su VERSIÓN BASE, con las funciones y codificaciones básicas. En la segunda parte realizaremos la VERSION COMPLETA, con funciones avanzadas y completas, donde modificaremos algunas líneas de código.
Bien, empecemos con el tutorial:
Paso 1: Diseñar Formulario Menú Principal
- Diseñe la interfaz gráfica de usuario para el menú principal de la siguiente manera, o puedes hacer el diseño que desees. La configuración de las propiedades se describen abajo.

- Establezca las siguientes propiedades del form y controles.
Formulario
FormBorderStyle = None
Size= 1300, 650
Panel Menú
Name = «MenuVertical»
Dock = Left
Size = 250, 650
BackColor = 0,122,204
Panel Barra Titulo
BackColor = WhiteSmoke
Dock = Top
Name = «BarraTitulo»
Size = 1050, 45
Panel Contenedor
BackColor = WhiteSmoke
Dock = Fill
Name = «panelContenedor»
Botón Menu (Picture Box)
Cursor = Hand
Name = «btnMenu»
Size =35, 35
SizeMode = Zoom
Image = «btnMenu.Image»
Botones
FlatStyle = Flat
FlatAppearance.BorderSize = 0
FlatAppearance.MouseOverBackColor = 45,45,48
Size = 250, 40
Boton Cerrar, Maximizar, Minimizar, Restaurar
Size = 18, 18
Cursor = Hand
Anchor = Top | Right (Responsive)
Paso 2: Crear Menú Animado, Contraer-Expandir Menú
- Ahora codificaremos la opción de contraer y expandir el panel menú vertical; para ello, creamos el evento clic del Botón Menú.
private void btnMenu_Click(object sender, EventArgs e)
{
if (MenuVertical.Width == 250)
{
MenuVertical.Width = 70;
}
else
MenuVertical.Width = 250;
}
Paso 3: Crear Funciones de Cerrar, Maximizar/Restaurar y Minimizar el formulario.
- Creamos los eventos Clic de cada botón, y codificamos de la siguiente manera:
private void iconcerrar_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void iconmaximizar_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
iconrestaurar.Visible = true;
iconmaximizar.Visible = false;
}
private void iconrestaurar_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
iconrestaurar.Visible = false;
iconmaximizar.Visible = true;
}
private void iconminimizar_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}
Paso 4: Añadir Función de Arrastrar el formulario (Drag Form)
- Importamos la librería System.Runtime.InteropServices, y agregamos los siguientes fragmentos de código.
- Creamos el evento MouseDown del Panel Barra de Titulo, e invocamos los métodos anteriores creados.
[DllImport("user32.DLL", EntryPoint = "ReleaseCapture")]
private extern static void ReleaseCapture();
[DllImport("user32.DLL", EntryPoint = "SendMessage")]
private extern static void SendMessage(System.IntPtr hwnd, int wmsg, int wparam, int lparam);
private void BarraTitulo_MouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();
SendMessage(this.Handle,0x112,0xf012,0);
}
Paso 5: Crear Método para Abrir formularios en el panel Contenedor.
private void AbrirFormEnPanel(object Formhijo)
{
if (this.panelContenedor.Controls.Count > 0)
this.panelContenedor.Controls.RemoveAt(0);
Form fh = Formhijo as Form;
fh.TopLevel = false;
fh.Dock = DockStyle.Fill;
this.panelContenedor.Controls.Add(fh);
this.panelContenedor.Tag = fh;
fh.Show();
}
Paso Final: Abrir Formularios- Invocar método anterior.
- Para probar, Crearé y abriré el formulario de Inicio y Productos.
private void btnprod_Click(object sender, EventArgs e)
{
AbrirFormEnPanel(new Productos());
}
private void btnlogoInicio_Click(object sender, EventArgs e)
{
AbrirFormEnPanel(new InicioResumen());
}
private void Form1_Load(object sender, EventArgs e)
{
AbrirFormEnPanel(new InicioResumen());
}
Video Tutorial
Descargas
Eso es todo, ahora modificaremos la función de maximizar y restaurar, como habréis notado al maximizar cubre toda la pantalla, también no permite redimensionar en tiempo de ejecución, es decir, al quitar el borde ya no es posible cambiar tamaño (Estirar-Contraer el formulario).

Los comentarios están cerrados.