2016-01-28 38 views
-1

在.NET 4.5中禁用NumericUpDownComboBox的控件仍然響應鼠標滾輪事件。這看起來像一個錯誤。使用Enabled = false阻止控件上的鼠標滾輪

這是WinForms中的錯誤嗎? 對控件進行子類化之後,我怎樣才能防止這種情況發生?

[編輯:再現步驟] 在Windows 10使用Visual Studio專業2012更新4,我做到以下幾點:

  1. 創建一個新的WinForms應用程序。
  2. 在Designer中打開Form1。從工具箱中拖動面板。
  3. 將一個ComboBox和一個NumericUpDown拖到面板中。
  4. 使用屬性面板 - >數據 - >項目在組合框上設置3個字符串「A」,「B」,「C」
  5. 拖入複選框並將其置於面板下方。將其命名爲「已禁用」。
  6. 雙擊該複選框以創建一個事件處理程序:

    private void checkBox1_CheckedChanged(object sender, EventArgs e) 
    { 
        panel1.Enabled = !checkBox1.Checked; 
    } 
    
  7. 編譯和運行。點擊複選框以使panel1.Enabled爲false,然後將鼠標懸停在NumericUpDown上並移動鼠標滾輪。即使NumericUpDown被繪製禁用,數字也會改變。

+0

我無法複製這個。如果控件被禁用,它們將無法獲得焦點,因此我無法讓它們響應鼠標事件。你有一些步驟來複制這個或代碼來顯示? – Equalsk

+0

在我的情況下,控件是禁用的容器控件的子控件。 – damian

+0

仍然無法做到。我把它們放在面板中,只禁用面板,但它們仍然不響應鼠標事件。你能提供確切的細節和步驟嗎? – Equalsk

回答

-1

試圖複製這個同事的系統後,我們確定了問題由我已經安裝啓用滾動鼠標指針下的窗口,而不該窗口需要重點第三方工具(造成一拉OSX)。

+0

我現在感覺好多了。允許做「我告訴過你」跳舞? ;-) 很高興你把事情解決了。 (僅供參考,我沒有downvote,不知道誰是忍者) – Equalsk

+0

去爲它:D和謝謝,我也是(很高興我得到它排序我的意思) - 非常高興擊中'不會修復'按鈕我們的JIRA。 – damian