1

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

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

4

2 回答 2

5

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

于 2012-11-28T13:09:58.727 回答
0

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

于 2012-11-28T13:13:52.783 回答