方法1:
private Point m_point=new Point(0,0); 
 
private void SmallWindow_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
  {
   m_point=new Point(e.X,e.Y);
 
  }
 
private void SmallWindow_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
  {
   if(e.Button==MouseButtons.Left)
   {
    //Point cp=new Point(e.X,e.Y);
    Point cp=Control.MousePosition;
    this.Location=new Point(cp.X-m_point.X,cp.Y-m_point.Y);
   }
  }
 
 
 
方法2:
 
1。

using System.Runtime.InteropServices;


 
2。倒入库

[DllImport("user32.dll")]
   public static extern bool ReleaseCapture();  [DllImport("user32.dll")]
   public static extern bool SendMessage(IntPtr hwnd,int wMsg,int wParam,int lParam);

 
3。定义常量

public const int WM_SYSCOMMAND=0x0112;
   public const int SC_MOVE=0xF010;
   public const int HTCAPTION=0x0002;


  
4。添加 MouseDown 消息

private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
   {
        ReleaseCapture();
        SendMessage(this.Handle,WM_SYSCOMMAND,SC_MOVE+HTCAPTION, 0); 
   }