C# 如何在Windows窗体中禁用数字上下滚动

C# 如何在Windows窗体中禁用数字上下滚动,c#,mousewheel,numericupdown,C#,Mousewheel,Numericupdown,我一直在试图找到一种方法,当我不小心将鼠标移到NumericUpDown上时,可以禁用NumericUpDown的滚动。有没有一种方法可以使用属性来实现这一点 我找到了一种使用组合框代码禁用它的方法,但不是直接在Designer视图的Properties面板中 这就是我找到的代码: void comboBox1_MouseWheel(object sender, MouseEventArgs e) { ((HandledMouseEventArgs)e).Handled

我一直在试图找到一种方法,当我不小心将鼠标移到NumericUpDown上时,可以禁用NumericUpDown的滚动。有没有一种方法可以使用属性来实现这一点

我找到了一种使用组合框代码禁用它的方法,但不是直接在Designer视图的Properties面板中

这就是我找到的代码:

    void comboBox1_MouseWheel(object sender, MouseEventArgs e) {
        ((HandledMouseEventArgs)e).Handled = true;
    }
我从这个链接中找到了代码:


在我的设计中,我有很多这样的数字上下,因此我想有一种方法,当我不小心将鼠标移到数字上下时,可以禁用鼠标滚动。因此,如果有一种直接在属性中执行此操作的方法,它将非常有用。提前谢谢

如果不需要向上和向下按钮来执行任何操作,则可以将增量属性设置为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;
}

我刚刚测试了这个,它做得很好。

我不确定属性,但您可以创建自己的控件来禁用鼠标滚轮,然后用自定义的控件替换所有的数字上下。但我不确定这是不是最好的选择。