Programadores dedicados a C sharp .Net, eres nuevo, experto o quieres aprender a programar en C Sharp, aquí encontraras todo lo que necesitas.
 
ÍndiceCalendarioFAQBuscarMiembrosGrupos de UsuariosChatRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Síguenos:
Crear foro Crear foro Crear foro

Comparte | 
 

 Mover un formulario sin bordes.

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Guillermo Javier Salazar
STAFF TEAM
STAFF TEAM
avatar

Mensajes : 181
Puntos : 349
Localización : México
Comentarios : El azar favorece a una mente preparada.

MensajeTema: Mover un formulario sin bordes.   Jue Mar 10, 2011 5:14 pm

Mover un formulario sin bordes

Muchas veces queremos decorar o "adornar" nuestro formulario y para esto necesitamos quitarle los bordes, al final queda muy bien pero, y ahora como lo movemos??, pues aquí les dejo como mover formularios sin ocupar los bordes, primero necesitamos la librería:

using System.Runtime.InteropServices;

Declaramos las siguientes APIs:

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

Ahora simplemente en el evento MouseDown de nuestro formulario ponemos el siguiente código:

-----------------------------------------------------------------------
ReleaseCapture();
SendMessage(this.Handle, 0x112, 0xf012, 0);
-----------------------------------------------------------------------

El ejemplo viene en unión al ejemplo de [Tienes que estar registrado y conectado para ver este vínculo], así que te aconsejo leer este tema también.

[Tienes que estar registrado y conectado para ver este vínculo]

Ahora si, pueden mover el formulario de cualquier parte, con sus propios diseños.
Volver arriba Ir abajo
Ver perfil de usuario http://cspromex.activo.mx
Cinder92
Programador Intermedio
avatar

Mensajes : 29
Puntos : 52

MensajeTema: Re: Mover un formulario sin bordes.   Miér Mar 16, 2011 10:51 pm

muy buen tutorial me ayudo de mucho gracias!!
Volver arriba Ir abajo
Ver perfil de usuario
Monroe
Novato
avatar

Mensajes : 1
Puntos : 1

MensajeTema: Re: Mover un formulario sin bordes.   Mar Ago 02, 2011 1:18 pm

¡Muchas gracias! bounce
Volver arriba Ir abajo
Ver perfil de usuario
ArturoTZ
Novato
avatar

Mensajes : 2
Puntos : 2

MensajeTema: Re: Mover un formulario sin bordes.   Vie Mar 16, 2012 4:56 pm

Buenas, segui el tutorial al pie de la letra pero me dio error a lo ultimo con el ReleaseCapture(); me dice que no existe en el contexto actual. Podria alguien orientarme? :\
Volver arriba Ir abajo
Ver perfil de usuario
Guillermo Javier Salazar
STAFF TEAM
STAFF TEAM
avatar

Mensajes : 181
Puntos : 349
Localización : México
Comentarios : El azar favorece a una mente preparada.

MensajeTema: Re: Mover un formulario sin bordes.   Vie Mar 16, 2012 6:35 pm

Podría ser por tu versión de windows, cual tienes?

_________________
[Tienes que estar registrado y conectado para ver este vínculo] [Tienes que estar registrado y conectado para ver esa imagen]
Volver arriba Ir abajo
Ver perfil de usuario http://cspromex.activo.mx
kains
Programador Básico
avatar

Mensajes : 16
Puntos : 30
Localización : Venezuela

MensajeTema: Re: Mover un formulario sin bordes.   Vie Mar 16, 2012 8:32 pm

Con esto también puedes mover un formulario son problemas

Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Launcher
{
    public partial class Unzip : Form
    {
        public Unzip()
        {
            InitializeComponent();
         //Mover el Formulario sin Border
            this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Unzip_MouseMove);
        }
      
      //
        // Declaraciones del API de Windows (y constantes usadas para mover el form)
        //
        const int WM_SYSCOMMAND = 0x112;
        const int MOUSE_MOVE = 0xF012;
        //
        // Declaraciones del API
        [System.Runtime.InteropServices.DllImport("user32.DLL", EntryPoint = "ReleaseCapture")]
        private extern static void ReleaseCapture();
        //
        [System.Runtime.InteropServices.DllImport("user32.DLL", EntryPoint = "SendMessage")]
        private extern static void SendMessage(System.IntPtr hWnd, int wMsg, int wParam, int lParam);
        //
        // función privada usada para mover el formulario actual
        private void moverForm()
        {
            ReleaseCapture();
            SendMessage(this.Handle, WM_SYSCOMMAND, MOUSE_MOVE, 0);
        }

        //Para Mover el Formulario
        private void Unzip_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            moverForm();
        }
    }
}


Última edición por kains el Dom Mar 18, 2012 8:01 am, editado 1 vez
Volver arriba Ir abajo
Ver perfil de usuario http://www.kains-studios.com
ArturoTZ
Novato
avatar

Mensajes : 2
Puntos : 2

MensajeTema: Re: Mover un formulario sin bordes.   Sáb Mar 17, 2012 6:26 pm

Guillermo Javier Salazar escribió:
Podría ser por tu versión de windows, cual tienes?

Windows 7 Home Premium, uso Visual Studio 2010 Ultimate, no se si eso tenga que ver.

kains, probare con tu metodo y a ver como me va.

Gracias (:
Volver arriba Ir abajo
Ver perfil de usuario
kains
Programador Básico
avatar

Mensajes : 16
Puntos : 30
Localización : Venezuela

MensajeTema: Re: Mover un formulario sin bordes.   Sáb Mar 17, 2012 6:27 pm

eso no tiene nada que ver tio
Volver arriba Ir abajo
Ver perfil de usuario http://www.kains-studios.com
Contenido patrocinado




MensajeTema: Re: Mover un formulario sin bordes.   

Volver arriba Ir abajo
 
Mover un formulario sin bordes.
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

Permisos de este foro:No puedes responder a temas en este foro.
CSPromex :: PROGRAMACIÓN EN C# :: Código abierto-
Cambiar a: