方法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);
}
















