Tout d'abord nous devrons utiliser les services interop en utilisant l'espace de nom comme
using System.Runtime.InteropServices;
La prochaine étape consisterait à définir les messages qui se chargeront de déplacer le formulaire. Il s'agira de variables membres de la classe
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
et enfin nous écrirons le code pour envoyer le message chaque fois que l'utilisateur appuie sur le bouton de la souris. Le formulaire sera repositionné en fonction du mouvement de la souris si l'utilisateur maintient le bouton de la souris enfoncé.
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();
SendMessage(this.Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
Voir ce lien Formulaire à glisser
Crédits pour rahul-rajat-singh