如何使 NumericUpDown 只读
How to make NumericUpDown ReadOnly
我想让 WinForms NumericUpDown 控件不可编辑,或者至少应该禁用自旋控件。我尝试将控件设置为只读,但使用鼠标滚动值正在改变。请帮我实现这个目标。
尝试以下操作以将数字 up/down 设置为只读:
numericUpDown1.ReadOnly = true;
numericUpDown1.Increment = 0;
希望对您有所帮助。
另一种方法是子类化 NumericUpDown
并覆盖 DownButton
和 UpButton
方法,以便在设置 ReadOnly
时它们 return 提早:
public override void DownButton()
{
if(this.ReadOnly)
return;
base.DownButton();
}
public override void UpButton()
{
if(this.ReadOnly)
return;
base.UpButton();
}
这似乎也可以防止 up/down 箭头按下和鼠标滚动更改值。
这种方法的好处是您现在可以在控件上对 ReadOnly 属性 进行数据绑定,并期望它将值设为只读,而不仅仅是文本区域。
还有另一种选择:NumericUpDown 控件有两个 sub-controls、“UpDownButtons”和“UpDownEdit”。我们要禁用第一个:
numericUpDown1.ReadOnly = true;
numericUpDown1.Controls[0].Enabled = false; // Controls[0] is the spinner
或设置Controls[0].Visible = false 完全隐藏它。
我想让 WinForms NumericUpDown 控件不可编辑,或者至少应该禁用自旋控件。我尝试将控件设置为只读,但使用鼠标滚动值正在改变。请帮我实现这个目标。
尝试以下操作以将数字 up/down 设置为只读:
numericUpDown1.ReadOnly = true;
numericUpDown1.Increment = 0;
希望对您有所帮助。
另一种方法是子类化 NumericUpDown
并覆盖 DownButton
和 UpButton
方法,以便在设置 ReadOnly
时它们 return 提早:
public override void DownButton()
{
if(this.ReadOnly)
return;
base.DownButton();
}
public override void UpButton()
{
if(this.ReadOnly)
return;
base.UpButton();
}
这似乎也可以防止 up/down 箭头按下和鼠标滚动更改值。
这种方法的好处是您现在可以在控件上对 ReadOnly 属性 进行数据绑定,并期望它将值设为只读,而不仅仅是文本区域。
还有另一种选择:NumericUpDown 控件有两个 sub-controls、“UpDownButtons”和“UpDownEdit”。我们要禁用第一个:
numericUpDown1.ReadOnly = true;
numericUpDown1.Controls[0].Enabled = false; // Controls[0] is the spinner
或设置Controls[0].Visible = false 完全隐藏它。