Per rendere spostabile il form ho usato il seguente codice:
private bool mouseDown;
private Point lastLocation;
    private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
        mouseDown = true;
        lastLocation = e.Location;
    }
    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
        if(mouseDown)
        {
            this.Location = new Point(
                (this.Location.X - lastLocation.X) + e.X, (this.Location.Y - lastLocation.Y) + e.Y);
            this.Update();
        }
    }
    private void Form1_MouseUp(object sender, MouseEventArgs e)
    {
        mouseDown = false;
    }
Da applicare non solo sul form, ma anche su gli elementi sopra al form (come le textBox).
Come al solito, è bastato fare una ricerca in lingua inglese      ed è uscito fuori il risultato.. lo condivido così potrebbe essere utile a qualc1..