使用Enabled = false

时间:2016-01-28 09:06:01

标签: c# winforms combobox mousewheel numericupdown

在带有.Net 4.5的C#中,已禁用的NumericUpDownComboBox控件仍会响应鼠标滚轮事件。这似乎是一个错误。

这是WinForms中的错误吗? 如果没有对控件进行子类化,我该如何防止这种情况发生?

[编辑:复制步骤] 在Windows 10上使用Visual Studio Professional 2012 Update 4,我执行以下操作:

  1. 创建一个新的WinForms应用程序。
  2. 在Designer中打开Form1。从工具箱中拖动面板。
  3. 将ComboBox和NumericUpDown拖到面板中。
  4. 使用“属性”面板在ComboBox上设置3个字符串“A”,“B”,“C” - >数据 - >项目
  5. 在复选框中拖动并将其放在Panel下方。将其命名为“已禁用”。
  6. 双击复选框以创建事件处理程序:

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        panel1.Enabled = !checkBox1.Checked;
    }
    
  7. 编译并运行。点击复选框,使panel1.Enabled为false,然后将鼠标悬停在NumericUpDown上并移动鼠标滚轮。即使NumericUpDown被禁用,数字也会改变。

1 个答案:

答案 0 :(得分:-1)

在尝试在同事的系统上重现此问题后,我们确定问题是由我安装的第三方工具引起的,以便在鼠标指针下滚动窗口而不需要该窗口需要关注(la OSX)。