You are on page 1of 2

El c�digo para C#

//-----------------------------------------------------------------------------
// Prueba de mover un formulario sin barra de textos (ni bordes) (07/Ene/05)
// Usando API de Windows
//
// �Guillermo 'guille' Som, 2005
//-----------------------------------------------------------------------------
using System;
using System.Windows.Forms;

public class Form1 : System.Windows.Forms.Form


{
public Form1()
{
//
// Necesario para admitir el Dise�ador de Windows Forms
//
InitializeComponent();

//
// TODO: agregar c�digo de constructor despu�s de llamar a
InitializeComponent
//
// Estas "asignaciones" suelen estar en el cuerpo del c�digo oculto
// del dise�ador de Windows, pero lo pongo fuera para que se vea
// que realmente capturamos todo el c�digo en la misma funci�n
this.MouseMove += new
System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
this.Label1.MouseMove += new
System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
this.PictureBox1.MouseMove += new
System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
//
// La "captura" del evento MouseMove del GroupBox
// no aparece en la lista del dise�ador de formularios de C#
this.GroupBox1.MouseMove += new MouseEventHandler(Form1_MouseMove);
}
//
#region C�digo generado por el Dise�ador de Windows Forms
// C�digo del dise�ador de formularios (no mostrado)
#endregion
//
/// <summary>
/// Punto de entrada principal de la aplicaci�n.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
//
// 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);
}
//
//
private void btnCerrar_Click(object sender, System.EventArgs e)
{
this.Close();
}
// podemos usar el mismo procedimiento de evento para mover
private void Form1_MouseMove(object sender,
System.Windows.Forms.MouseEventArgs e)
{
moverForm();
}
}

You might also like