阻止鼠标滚轮位于控件上,启用 = 假
本文关键字:控件 启用 鼠标 于控件 | 更新日期: 2023-09-27 18:32:11
在带有 .Net 4.5 的 C# 中,禁用的NumericUpDown
和ComboBox
控件仍会响应鼠标滚轮事件。这似乎是一个错误。
这是WinForms中的错误吗?如果不对控件进行子类化,如何防止这种情况发生?
[编辑:复制步骤]在 Windows 10 上使用 Visual Studio Professional 2012 Update 4,我执行以下操作:
- 创建一个新的 WinForms 应用。
- 在设计器中打开 Form1。从工具箱中拖入面板。
- 将组合框和数字向下拖动到面板中。
- 使用"属性"面板在组合框上设置 3 个字符串"A"、"B"、"C"->数据"->项
- 拖入复选框并将其放在面板下方。将其命名为"禁用"。
-
双击该复选框以创建事件处理程序:
private void checkBox1_CheckedChanged(object sender, EventArgs e) { panel1.Enabled = !checkBox1.Checked; }
-
编译并运行。点击复选框,以便面板1。启用为 false,然后将鼠标悬停在 NumericUpDown 上并移动鼠标滚轮。即使数字向下绘制被禁用,数字也会改变。
在尝试在同事的系统上重现此问题后,我们确定问题是由我安装的第三方工具引起的,该工具可以在鼠标指针下滚动窗口,而无需该窗口需要焦点(a la OSX)。