2012-11-28 42 views
1

我喜歡你看看這段代碼: 我有一個名爲Button1的按鈕。WinForm事件處理程序激活太慢

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中嘗試過同樣的事情,並且絕對沒有任何延遲。基本上我希望鼠標事件儘快觸發。

我可以通過哪些方式完成該任務? 謝謝

回答

5

嘗試使用MouseEnter事件而不是MouseHover--後者在'延遲後'被觸發,因爲Windows無法分辨鼠標懸停,除非它一直處於靜止狀態。

+0

非常感謝你!我從字面上研究了整整一天,並試圖想出這麼多不同的方法,因爲這個問題,但是解決方案非常簡單。 你爲我節省了很多時間 –

+0

我的榮幸 - 很高興能有這樣的服務。 –

0

調用button1.Invalidate(false)將導致在下一幀內重新繪製控件。將這一行放在你的顏色改變代碼後面,看看它是否有效。