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で同じことを試しましたが、遅延はまったくありません。基本的には、Mouse イベントをできるだけ早く発生させたいと考えています。

そのタスクをどのように達成できますか? ありがとうございました

4

2 に答える 2

5

MouseHover ではなく、MouseEnter イベントを使用してみてください。後者は、マウスがしばらく静止していない限り、マウスがホバリングしていることを Windows が認識できないため、「遅延後に」発生します。

于 2012-11-28T13:09:58.727 に答える
0

を呼び出すbutton1.Invalidate(false)と、次のフレーム内でコントロールが再描画されます。この行を色変更コードの直後に配置して、機能するかどうかを確認してください。

于 2012-11-28T13:13:52.783 に答える