Ir al contenido principal

Como mover Form sin Bordes

Muchas veces queremos tener un Form diseñado por nosotros mismos cuando practicamos la programación en c#, restandole los clásicos controles de Windows o no depender del estilo de nuestro Windows o su versión, para eso podemos quitarle los Bordes a nuestro Form, pero ya te habrás dado cuenta si lo intentaste, que una vez hecho esto nuestro Form no tendrá la opción de moverse, ni contara con los botones de cerrar, maximizar o minimazar, para eso veremos como hacer una aplicación que no contenga estilos de Windows, lo que necesitamos es lo siguiente:
- Quitarle los Bordes a un Form.
- Agregar ya sea una Imagen de Fondo, o dibujar alguna utilizando algunos Panel.
- Agregar un botón para cerrar el Form.
Como ejemplo puedes tomar el Form que se muestra en este post.

Una vez diseñado nuestro Form, debemos incluir en nuestro código lo siguiente:


Importar las Dll de user32 de Windows que contiene los métodos para mover ventanas, las cuales podemos agregar con el siguiente código:

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


Lo siguiente sera agregar el Evento Mouse Down a nuestro form, que sera el que se activara cuando queramos arrastrar nuestro form:

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


Por ultimo solo nos faltara agregar el código para cerrar la aplicación en nuestro botón cerrar:


private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }


Espero les haya sido de utilidad, saludos.

Comentarios

  1. EH PEGADO EXACTAMENTE ESO CODIGO Y EH PUESTO LAS LIBRERIAS NECESARIAS Y AUN NO ME PUEDE MOVER LA VENTANA, TIENES ALGUNA RECOMENDACION?

    ResponderEliminar
    Respuestas
    1. mi recomendación es que en el manejador de eventos de la forma osea el Icono de un Rayo, especifiques que ya estas agregando el evento Mouse Down a esa forma, hay tendrás todos los eventos disponibles para tu forma debes agregar el MouseDown porque por default no te lo reconocerá.

      Eliminar
    2. a mi me funciono esta perefctamente:

      http://www.elguille.info/colabora/puntoNET/couoh_FormDragDrop.htm

      Eliminar
  2. Funciona correctamente, solo hay que importar una librería
    using System.Runtime.InteropServices; y creo que solucionará el inconveniente de Anónimo

    ResponderEliminar
  3. Se puede quitar los bordes de una aplicación de terceros con borde, justamente para no poder moverla ni cerrarla con la librería user32.dll.

    ResponderEliminar
  4. Pero en que parte del codigo se agrega?

    ResponderEliminar
    Respuestas
    1. para que funcione debes importar
      using System.Runtime.InteropServices;
      el primer codigo se coloca en

      public partial class xxx : Form
      { aqui }

      Eliminar
  5. muy bien gracias! desde Rep.Dom

    ResponderEliminar
  6. Muchas gracias. Funcionó como debe. Saludos.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Crear un Sistema con conexión a BD paso a paso C#

Primero que nada esta estoy en un proceso de re-estructuración del Blog, anteriormente los artículos eran vagos con poca información y poco explícitos donde solo publicaba los enlaces de descarga de los proyectos, para cambiar esto ahora empezare a publicar soluciones completas, mejor estructurado el contenido de mis artículos y aunque no prometo hacerlo muy seguido debido a que pocas veces tengo tiempo, prometo que los contenidos serán de mayor calidad y mas útiles. Para demostrar esto primero que nada publicare una de las mayores herramientas que un programador novato y con un poco de experiencia pueden tener, la conexión con una BD, en este caso SQL Server que es la que mejor se integra con Visual Studio y la Plataforma .NET, empecemos.

Llenar un DropdownList con Datos ASP.NET C#

En Asp.net llenar un Dropdownlist es un poco distinto a cuando llenamos un Combobox en una aplicación de Windows Form, aunque son muy similares un Combobox tiene distintas funciones y por lo tanto diferentes propiedades, que cambian en un control DropdownList de ASP.NET y es necesario identificar cuales son y cual es la forma correcta de llenar un DropdownList, en este ejemplo lo haremos utilizando no datos estáticos sino que aprenderemos como hacerlos con datos de una consulta en SQL, lo demás a continuación.

Chart en C# - Control para Graficos en Windows Form

El siguiente articulo es un pequeño tutorial sobre como utilizar el Control "Chart" de .NET para crear gráficos en una aplicación, en este caso una aplicación para Windows, para su funcionamiento es simple y permite ayudarnos para crear gráficos en alguna de nuestras aplicaciones donde sea necesario este tipo de implementacion, así que tendremos que crear un proyecto nuevo del tipo Windows Form donde necesitaremos principalmente los siguientes componentes: - 3 Controles Textbox para ingresar los valores al gráfico. - 2 Botones para las 2 diferentes acciones que realizaremos. - 1 Control Chart que si no lo ubican se encuentra en la sección Data de su Visual Studio o Visual C# Express.
De tal forma que el resultado sea similar al de la imagen mostrada, ahora pasaremos al código para el primer botón que se encargara de asignar los valores al control Chart.