Ciao
Mi pareva di ricordare che ci fosse un articolo su DotNetHell, ma non sono riuscito a trovarlo... Comunque non è difficile, ti basta gestire l'evento MouseDown per scoprire quale è il punto base (quello dove clicki) e poi l'evento MouseMove per spostare la Form ad ogni movimento. Il risultato è una cosa di questo genere:
private Point offset;
private void tuaForm_MouseDown(object sender, MouseEventArgs e)
{
offset = new Point(-e.X, -e.Y);
}
private void tuaForm_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Point mousePos = Control.MousePosition;
mousePos.Offset(offset.X, offset.Y);
this.Location = mousePos;
}
}
Luca