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;
}
}
}
Winform 窗口拖动
最新推荐文章于 2024-05-04 17:58:24 发布