Formularios sin bordes C#

Cerrar, Maximizar, Minimizar y Mover ventanas sin bordes

No tarde mas que unos pocos minutos, pero si le dedican tiempo, podrían por ejemplo colocar un formulario transparente completo y una imagen de fondo con la forma que desees que tenga su formulario. Quizás este ejemplo no es el mas bonito de los formularios sin bordes, pero se entiende la idea.


Formularios sin bordes c#

¿Cual fue el problema? Lo principal, es que ya no tenia como mover, minimizar, maximizar o cerrar el formulario, así que tuve que agregar las opciones de forma manual con un poco de código e imaginación. Yo les proporciono el código, la imaginación la tendrán que agregar ustedes.

  1. Creamos un formulario
  2. FormBorderStyle, lo dejamos como None
  3. Cambiamos la letra y el fondo de nuestro formulario a gusto, si lo desean, pueden darle cierta transparencia.
  4. 2 Label para titulo y descripción
  5. 3 PictureBox, 1 para cerrar, 1 para minimizar, 1 para mover y si lo desean, otro para maximizar (los botones los hice con paint, pero seguro ustedes encontraran algo mejor que eso).

Ante todo, quizás les interese saber como funcionan las ventanas en Windows, yo me base en este tutorial, para implementar el siguiente código. El código en si para un Formulario sin Bordes c#:

//incluimos Interpod
using System.Runtime.InteropServices;

Esta parte del código, agréguenla en la clase principal de formulario antes de inicializar los componentes, con ellos capturaremos los eventos necesarios para movilizar nuestra ventana.

[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);

En el botón (imagen) mover, agreguen el siguiente código al evento “MouseDow” de la imagen, para que les funcione, con el evento click, no obtendrán resultados. Si lo desean pueden agregar el código a el evento “MouseDow” del formulario en si, con eso lograran que el usuario pueda mover la ventana desde el lugar que el quiera y no solo al presionar el botón mover.

private void pbMove_MouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();
            SendMessage(this.Handle, 0x112, 0xf012, 0);
}

Esto no necesita detalles, agréguenlo al evento click de la imagen minimizar para sus Formularios sin bordes.

this.WindowState = FormWindowState.Minimized;

Lo mismo que antes, agréguenlo al evento click de la imagen cerrar para sus Formularios sin bordes.

Application.Exit();

y para verlo funcionando, pueden descargar el código de este ejemplo desde el siguiente enlace (lo desarrolle con c# express 2012). Código fuente de Ejemplo para Formularios sin bordes en C#:

Dropbox: Formulario sin Bordes


Skydrive: Formulario sin Bordes (Espejo)

Suscribete a nuestra lista

Mantente informado sobre las novedades que ofrecemos en nuestra web, no te llenaremos de Spam ni entregaremos tus datos a terceros.

Gracias por suscribirte a nuestra lista

Pin It on Pinterest

Compártelo!

Háblale a tus amigos sobre este articulo!