退出mouseDown事件的while循环
本文关键字:while 循环 事件 mouseDown 退出 | 更新日期: 2023-09-27 18:11:00
我正试图使我的表单,它没有边界,可移动,按住鼠标左键并在释放鼠标按钮时退出while循环。但是我现在的代码并没有在释放时退出循环。
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
mouseDown = true;
while (mouseDown)
{
mouseX = MousePosition.X;
mouseY = MousePosition.Y - 30;
this.SetDesktopLocation(mouseX, mouseY);
if (e.Button != MouseButtons.Left)
mouseDown = false;
}
我也尝试添加一个mouseUp事件,但它不能发生,只要mouseDown是活动的。
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
mouseDown = true;
}
好的,我自己修复了。
我刚刚做了这个:
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
mouseDown = true;
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
mouseDown = false;
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (mouseDown)
{
mouseX = MousePosition.X - 20;
mouseY = MousePosition.Y - 40;
this.SetDesktopLocation(mouseX, mouseY);
}
}
通过在on mouse up事件中使用循环,您锁定了线程。您可以使用带有公共变量的MouseMove事件来检查鼠标是否按下。