Сначала нам нужно будет использовать сервисы взаимодействия, используя пространство имен как
using System.Runtime.InteropServices;
Следующим шагом будет определение сообщений, которые позаботятся о перемещении формы. Мы будем иметь их как переменные-члены класса
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();
и, наконец, мы напишем код для отправки сообщения всякий раз, когда пользователь нажимает кнопку мыши. Форма будет перемещена в соответствии с движением мыши, если пользователь удерживает кнопку мыши нажатой.
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();
SendMessage(this.Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
Ссылка на ссылку Перетаскиваемая форма
Кредиты Рахул-Раджат-Сингх