如何制作NumericUpDown ReadOnly

Shi*_*lpa 6 numericupdown readonly mousewheel winforms

我想使数字更新控件不可编辑,或者至少应该在Winforms中禁用旋转控件.我尝试设置控件只读,但使用鼠标滚动值正在改变.请帮助我实现这个目标

dbv*_*ega 11

请尝试以下操作以将数字向上/向下设置为只读:

numericUpDown1.ReadOnly = true;    
numericUpDown1.Increment = 0;
Run Code Online (Sandbox Code Playgroud)

我希望它有所帮助.


小智 6

另一种方法是子类化NumericUpDown和覆盖DownButtonUpButton方法,以便在ReadOnly设置时提前返回:

public override void DownButton()
{
   if(this.ReadOnly)
      return;

   base.DownButton();
}

public override void UpButton()
{
   if(this.ReadOnly)
      return;

   base.UpButton();
}
Run Code Online (Sandbox Code Playgroud)

这似乎也可以防止上/下箭头按下和鼠标滚动更改值.

这种方法的好处是,您现在可以将数据绑定到控件上的ReadOnly属性,并期望它将值设置为只读而不仅仅是文本区域.