panel drag all form c#

C#
// The Solution that works best for me is using unmanaged code, which gives you smooth window movements unlike the answer posted by HatSoft.
// 3 small steps to drag your window on Panel movement

using System.Runtime.InteropServices;
// add these six lines inside your class

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();

// and your MouseMove event on Panel should look like this
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
   if (e.Button == MouseButtons.Left)
   {
      ReleaseCapture();
      SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
   }
}
Source

Also in C#: