WinForm事件处理程序激活太慢

时间:2012-11-28 13:05:46

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

我想请你看看这段代码: 我有一个名为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中尝试过同样的事情,绝对没有延迟。基本上我希望鼠标事件尽快发射。

我能以什么方式完成这项任务? 谢谢

2 个答案:

答案 0 :(得分:5)

尝试使用MouseEnter事件而不是MouseHover - 后者在“延迟后”被触发,因为Windows无法判断鼠标是否悬停,除非它暂时静止不动。

答案 1 :(得分:0)

调用button1.Invalidate(false)将导致在下一帧内重绘控件。将此行放在换色代码后面,看看它是否有效。