1.重写
protected override void WndProc(ref Message m) { if (m.Msg == 163 && this.ClientRectangle.Contains(this.PointToClient(new Point(m.LParam.ToInt32()))) && m.WParam.ToInt32() == 2) m.WParam = (IntPtr)1; base.WndProc(ref m); if (m.Msg == 132 && m.Result.ToInt32() == 1) m.Result = (IntPtr)2; }
2.通过窗体检测鼠标按下
private Point _MouseOffset; private bool _IsMouseDown = false; private void frmLogin_MouseDown(object sender, MouseEventArgs e) { int xOffset; int yOffset; if (e.Button == MouseButtons.Left) { xOffset = -e.X; yOffset = -e.Y; _MouseOffset = new Point(xOffset, yOffset); _IsMouseDown = true; } } private void frmLogin_MouseMove(object sender, MouseEventArgs e) { if (_IsMouseDown) { Point mousePos = Control.MousePosition; mousePos.Offset(_MouseOffset.X, _MouseOffset.Y); Location = mousePos; } } private void frmLogin_MouseUp(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { _IsMouseDown = false; } }