private void Form1_MouseDown(object sender, MouseEventArgs e)
{
int x, y;
if (e.Button == MouseButtons.Left)
{
// e.X, e.Y 是鼠标在窗口的相对坐标, 而们要改变窗口的屏幕坐标 <pre name="code" class="csharp"> // SystemInformation.FrameBorderSize 为窗体边框大小
x = -e.X - SystemInformation.FrameBorderSize.Width; y = -e.Y - SystemInformation.FrameBorderSize.Height; MyPoint = new Point(x, y); isMouseDown = true; } } private void Form1_MouseMove(object sender, MouseEventArgs e) { if (isMouseDown) {
Point MousePoint = Control.MousePosition; MousePoint.Offset(MyPoint.X, MyPoint.Y);
// Location是窗口左上角的屏幕坐标
Location = MousePoint; } } private void Form1_MouseUp(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { isMouseDown = false; } }