Вот еще вариант позаимствованый с codeproject:
| Код |
public Form1() { InitializeComponent(); this.MouseUp += new MouseEventHandler(Form1_MouseUp); this.MouseMove += new MouseEventHandler(Form1_MouseMove); this.MouseDown += new MouseEventHandler(Form1_MouseDown); }
void Form1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { isMouseDown = true; xLast = e.X; yLast = e.Y; }
}
void Form1_MouseMove(object sender, MouseEventArgs e) { if (isMouseDown) { int newY = this.Top + (e.Y - yLast); int newX = this.Left + (e.X - xLast);
this.Location = new Point(newX, newY); }
}
void Form1_MouseUp(object sender, MouseEventArgs e) { isMouseDown = false; }
|
Только щас сообразил, используя этот способ надо обрабатывать ситуацию кагда форма развернута на весь экран иначи будут лаги после свертывания. |