c#实现随鼠标移动窗体
先声明
如果窗体有标题
Top -= SystemInformation.CaptionHeight;
如果有边框
Top -= SystemInformation.FormBorderSize.Height
Left -= SystemInformation.FormBorderSize.Width
andyran
1
private Point mousePoint;
![](/Images/OutliningIndicators/None.gif)
1
private void Form1_MouseMove(object sender, MouseEventArgs e)
2
{
3
if (e.Button == MouseButtons.Left)
4
{
5
this.Top = Control.MousePosition.Y - mousePoint.Y;
6
this.Left = Control.MousePosition.X - mousePoint.X;
7
}
8
}
9![](/Images/OutliningIndicators/None.gif)
10
private void Form1_MouseDown(object sender, MouseEventArgs e)
11
{
12
if (e.Button == MouseButtons.Left)
13
{
14
this.mousePoint.X = e.X;
15
this.mousePoint.Y = e.Y;
16
}
17
}
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
8
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
17
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
如果窗体有标题
Top -= SystemInformation.CaptionHeight;
如果有边框
Top -= SystemInformation.FormBorderSize.Height
Left -= SystemInformation.FormBorderSize.Width
andyran
┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉
赠人玫瑰 手留余香
┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉