Winform 窗口拖动
2021-06-08 11:02
标签:sem 鼠标移动 info desktop off ons button lse == Winform 窗口拖动 标签:sem 鼠标移动 info desktop off ons button lse == 原文地址:https://blog.51cto.com/12268222/2377943 public partial class Desktop : Form
{
private Point mPoint = new Point();//记录鼠标指针的坐标
private bool isMouseDown = false; //记录鼠标按键是否按下
public Desktop()
{
InitializeComponent();
Init();
}
public void Init()
{
//鼠标按下事件
this.MouseDown += Desktop_MouseDown;
//鼠标移动事件
this.MouseMove += Desktop_MouseMove;
this.MouseUp += Desktop_MouseUp;
}
private void Desktop_MouseUp(object sender, MouseEventArgs e)
{
// 修改鼠标状态isMouseDown的值
// 确保只有鼠标左键按下并移动时,才移动窗体
if (e.Button == MouseButtons.Left)
{
isMouseDown = false;
}
}
private void Desktop_MouseMove(object sender, MouseEventArgs e)
{
if (isMouseDown)
{
Point myPosittion = MousePosition;
myPosittion.Offset(-mPoint.X, -mPoint.Y);
Location = myPosittion;
}
}
private void Desktop_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mPoint.X = e.X;
mPoint.Y = e.Y;
isMouseDown = true;
}
}
}