【问题标题】:How to disable scrolling on a NumericUpDown in a Windows Form如何在 Windows 窗体中禁用 NumericUpDown 的滚动
【发布时间】:2020-01-22 15:01:52
【问题描述】:

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

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

这是我找到的代码:

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

我从这个链接找到了代码:

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

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

【问题讨论】:

  • 我不确定属性,但您始终可以创建自己的禁用鼠标滚轮的控件,然后将所有 NumericUpDowns 替换为您的自定义控件。不知道这是否是最好的选择。

标签: c# mousewheel numericupdown


【解决方案1】:

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

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;
}

我刚刚对此进行了测试,它做得很好。

【讨论】:

    【解决方案2】:

    如果您不需要向上和向下按钮做任何事情,那么您可以将 Increment 属性设置为 0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 2012-01-27
      相关资源
      最近更新 更多