C# 将while循环与MouseEnter一起使用
我在编程一个按钮时遇到了一些问题,当用户的光标在按钮上时,按钮会增加 我在图像上使用C# 将while循环与MouseEnter一起使用,c#,C#,我在编程一个按钮时遇到了一些问题,当用户的光标在按钮上时,按钮会增加 我在图像上使用MouseEnter,它调用以下方法: private void add_Number(object sender, MouseEventArgs) { _isMouseOver = true; while(_isMouseOver) { i++; Console.WriteLine(i);
MouseEnter
,它调用以下方法:
private void add_Number(object sender, MouseEventArgs)
{
_isMouseOver = true;
while(_isMouseOver)
{
i++;
Console.WriteLine(i);
}
}
我用作全局\u isMouseOver
的变量只是一个初始化为false
的私有布尔值。另外,i
只是一个全局变量,在函数中设置为0
为了从图像中添加另一个调用,我还使用了MouseLeave
调用另一个方法sub\u Number
,该方法减少变量I
,并将\u isMouseOver
设置为false
问题是,一旦我们进入while
循环,我们就永远不会离开那里,即使有人将光标放在图像之外。当我将其放置在图像之外时,它应该调用方法sub_Number
,以中断的执行,同时
循环,因此,停止增加I
以减少它
我需要做一些多重预测吗?它不是应该变得更复杂吗?
使用这些全局变量不好吗?如果我理解您的目标,最简单的方法是使用计时器控件,在启动时设置为Enabled=false
。在MouseEnter上,设置布尔值,但也要设置Timer.Enabled=true
。在计时器的滴答声方法中,增量和输出i。可以在设计时设置间隔。最后,取消设置布尔值并在OnMouseExit中设置Timer.Enabled=false
希望这有帮助。while循环中的input Application.DoEvents()。我认为它会解决这个问题。似乎它使用了100%的CPU,我不确定这是否是增量的最佳做法。你可以使用多个计时器。所以我正在按照你说的做,看起来这是个好主意,但我有一个问题。当我使用Timer.Tick
调用我的方法时,它表示方法Tick不在System.Timers
包中。我不确定我是否理解。也许有必要研究一下如何在网上使用计时器,如果你陷入困境,也许可以问一个新问题。虽然没有真正回答我的问题,但确实帮助了我。这是你的一票。