C# 如何在Windows窗体中禁用数字上下滚动
我一直在试图找到一种方法,当我不小心将鼠标移到NumericUpDown上时,可以禁用NumericUpDown的滚动。有没有一种方法可以使用属性来实现这一点 我找到了一种使用组合框代码禁用它的方法,但不是直接在Designer视图的Properties面板中 这就是我找到的代码:C# 如何在Windows窗体中禁用数字上下滚动,c#,mousewheel,numericupdown,C#,Mousewheel,Numericupdown,我一直在试图找到一种方法,当我不小心将鼠标移到NumericUpDown上时,可以禁用NumericUpDown的滚动。有没有一种方法可以使用属性来实现这一点 我找到了一种使用组合框代码禁用它的方法,但不是直接在Designer视图的Properties面板中 这就是我找到的代码: void comboBox1_MouseWheel(object sender, MouseEventArgs e) { ((HandledMouseEventArgs)e).Handled
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;
}
我刚刚测试了这个,它做得很好。我不确定属性,但您可以创建自己的控件来禁用鼠标滚轮,然后用自定义的控件替换所有的数字上下。但我不确定这是不是最好的选择。