我在编写一个按钮时遇到问题,当用户的光标在按钮上方时,该按钮会递增。
我在图像上使用MouseEnter
,它调用以下方法:
private void add_Number(object sender, MouseEventArgs)
{
_isMouseOver = true;
while(_isMouseOver)
{
i++;
Console.WriteLine(i);
}
}
我用作全局_isMouseOver
的变量只是一个初始化为private Boolean
的{{1}}。另外,false
只是一个全局变量,在开始时设置为0。
要从图像中添加另一个调用,我还使用i
来调用另一个方法MouseLeave
,该方法将减小变量sub_Number
并将i
设置为false。>
问题在于,一旦进入_isMouseOver
循环,即使将光标放在图像之外,我们也永远不会离开那里。当我将其放置在图像之外时,它应调用方法while
来中断sub_Number
循环的执行,因此,请停止增加while
来减少循环。
我需要做一些多用途的事情吗?它不是应该变得更加复杂吗? 使用这些全局变量是否不好?
答案 0 :(得分:1)
如果我了解您的目标,最简单的方法就是使用Timer控件,该控件在启动时设置为Enabled = false
。在MouseEnter上,像以前一样设置布尔值,但还要设置Timer.Enabled = true
。在“计时器的刻度”方法中,递增并输出i。您可以在设计时设置时间间隔。最后,取消设置布尔值,然后在OnMouseExit中设置Timer.Enabled = false
。
希望这会有所帮助。