Nam*_*mar 0 c# winforms mouse-cursor
我在我的 Windows 窗体应用程序中找到了通过此 URL 移动光标的解决方案。
如何使用 C# 移动鼠标光标?
但是因为我想无限地运行但要休息一下,以便当我想停止它时,它应该在这里停止,这就是我想要实现的目标。
private void btnMove_Click(object sender, EventArgs e)
{
//int i = 0;
while (true)
{
//i++;
Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = new Point(Cursor.Position.X - 40, Cursor.Position.Y - 40);
Thread.Sleep(5000);
Cursor.Position = new Point(Cursor.Position.X + 40, Cursor.Position.Y + 40);
}
//Task t = new Task(() =>
//{
//});
//t.Start();
}
Run Code Online (Sandbox Code Playgroud)
它有效,但冻结了我的代码。我只想运行它,每当我想停止它时,它应该停止而不是冻结。
Mar*_*ell 10
最终,这里的答案是:“不要”。
Windows 窗体基于消息泵。如果您有一个永远循环的消息(例如“单击”)的事件处理程序,它将永远无法处理其他消息(例如“绘制”),因此:您的应用程序现在没有响应。
而不是无限循环:使用 a Timer,并在回调中移动位置。在这种情况下,aSystem.Windows.Forms.Timer是最合适的。