如何禁用 Windows 表单中 NumericUpDown 的滚动

How to disable scrolling on a NumericUpDown in a Windows Form

我一直在尝试找到一种方法,当我不小心将鼠标悬停在 NumericUpDown 上时禁用 NumericUpDown 的滚动。有没有办法使用属性来做到这一点?

我找到了一种使用组合框代码禁用它的方法,但不是直接在设计器视图的“属性”面板中。

这是我找到的代码:

    void comboBox1_MouseWheel(object sender, MouseEventArgs e) {
        ((HandledMouseEventArgs)e).Handled = true;
    }

我从这个 link 中找到了代码:

C# - how do I prevent mousewheel-scrolling in my combobox?

我的设计中有很多这样的 NumericUpDown,因此希望有一种方法可以在我不小心将鼠标悬停在 NumericUpDown 上时禁用鼠标滚动。因此,如果有一种方法可以直接在属性中执行此操作,那将大有帮助。提前致谢!

如果不需要向上和向下按钮执行任何操作,则可以将增量 属性 设置为 0

您不能在设计器属性中进行设置。但是你可以使用一些作弊码来做到这一点:

private void Form1_Load(object sender, EventArgs e)
{
    foreach (Control ctl in Controls)
    {
        if (ctl.GetType() == typeof(NumericUpDown))
            ctl.MouseWheel += Ctl_MouseWheel;
    }
}

private void Ctl_MouseWheel(object sender, MouseEventArgs e)
{
    ((HandledMouseEventArgs) e).Handled = true;
}

我刚刚对此进行了测试,效果很好。