【问题标题】:WinForm Event-Handlers activating too slowWinForm 事件处理程序激活太慢
【发布时间】:2012-11-28 13:05:45
【问题描述】:

我想让你看看这段代码: 我有一个名为 Button1 的按钮。

    private void button1_MouseHover(object sender, EventArgs e)
    {
        button1.BackColor = Color.Black;
    }

    private void button1_MouseLeave(object sender, EventArgs e)
    {
        button1.BackColor = Color.Blue;
    }

此代码有效,但问题是延迟非常小。更改颜色大约有 1/2 秒的延迟。我在 WPF 中尝试过同样的事情,并且绝对没有延迟。基本上我希望鼠标事件尽快触发。

我可以通过什么方式完成这项任务? 谢谢

【问题讨论】:

    标签: c# winforms visual-studio-2010 visual-studio


    【解决方案1】:

    尝试使用 MouseEnter 事件而不是 MouseHover - 后者会在“延迟后”触发,因为 Windows 无法判断鼠标正在悬停,除非它静止了一小会儿。

    【讨论】:

    • 非常感谢!!由于这个问题,我已经研究了一整天,并试图想出很多不同的方法,但是解决方案是如此......简单。你为我节省了很多时间
    • 我很高兴 - 很高兴为您服务。
    【解决方案2】:

    调用@987654321@ 将导致在下一帧内重绘控件。将此行放在您的变色代码之后,看看它是否有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-04
      相关资源
      最近更新 更多