在.NET 4.5中禁用NumericUpDown
和ComboBox
的控件仍然響應鼠標滾輪事件。這看起來像一個錯誤。使用Enabled = false阻止控件上的鼠標滾輪
這是WinForms中的錯誤嗎? 對控件進行子類化之後,我怎樣才能防止這種情況發生?
[編輯:再現步驟] 在Windows 10使用Visual Studio專業2012更新4,我做到以下幾點:
- 創建一個新的WinForms應用程序。
- 在Designer中打開Form1。從工具箱中拖動面板。
- 將一個ComboBox和一個NumericUpDown拖到面板中。
- 使用屬性面板 - >數據 - >項目在組合框上設置3個字符串「A」,「B」,「C」
- 拖入複選框並將其置於面板下方。將其命名爲「已禁用」。
雙擊該複選框以創建一個事件處理程序:
private void checkBox1_CheckedChanged(object sender, EventArgs e) { panel1.Enabled = !checkBox1.Checked; }
編譯和運行。點擊複選框以使panel1.Enabled爲false,然後將鼠標懸停在NumericUpDown上並移動鼠標滾輪。即使NumericUpDown被繪製禁用,數字也會改變。
我無法複製這個。如果控件被禁用,它們將無法獲得焦點,因此我無法讓它們響應鼠標事件。你有一些步驟來複制這個或代碼來顯示? – Equalsk
在我的情況下,控件是禁用的容器控件的子控件。 – damian
仍然無法做到。我把它們放在面板中,只禁用面板,但它們仍然不響應鼠標事件。你能提供確切的細節和步驟嗎? – Equalsk