在MouseEnter中使用while循环

时间:2018-10-11 07:29:28

标签: c#

我在编写一个按钮时遇到问题,当用户的光标在按钮上方时,该按钮会递增。

我在图像上使用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来减少循环。

我需要做一些多用途的事情吗?它不是应该变得更加复杂吗? 使用这些全局变量是否不好?

1 个答案:

答案 0 :(得分:1)

如果我了解您的目标,最简单的方法就是使用Timer控件,该控件在启动时设置为Enabled = false。在MouseEnter上,像以前一样设置布尔值,但还要设置Timer.Enabled = true。在“计时器的刻度”方法中,递增并输出i。您可以在设计时设置时间间隔。最后,取消设置布尔值,然后在OnMouseExit中设置Timer.Enabled = false

希望这会有所帮助。