Esto debe ser lo que busca "Enhanced: Drag and move WinForms"
public partial class MyDraggableForm : Form
{
private const int WM_NCHITTEST = 0x84;
private const int HTCLIENT = 0x1;
private const int HTCAPTION = 0x2;
///
/// Handling the window messages
///
protected override void WndProc(ref Message message)
{
base.WndProc(ref message);
if (message.Msg == WM_NCHITTEST && (int)message.Result == HTCLIENT)
message.Result = (IntPtr)HTCAPTION;
}
public MyDraggableForm()
{
InitializeComponent();
}
}
Como los estados de entradas de blog, esta es una manera de "engañar" al sistema. De esta forma, no es necesario que piense en eventos de mouse arriba/abajo.
Tenga en cuenta que, como efecto secundario, la ventana maximizará la ventana al hacer doble clic. [Esta respuesta] (http://stackoverflow.com/a/1592899/855432) no causa este problema. – ghord
¿Puedo hacerlo arrastrable solo en cierta porción? por ejemplo, dentro de una región de control – Thunder
También mata el botón derecho del mouse. – TaW