我在 winform 上有一个 numericupdown 控件,我在测试时注意到,您不仅可以选择通过按下 up 和 down 键来更改值,还可以简单地从键盘输入值。
我不想要那个。我只希望用户只能通过单击框中的向上和向下按钮来更改 numericupdown 的值。
到目前为止,我根本找不到解决方案。
有谁知道如何做到这一点?
我在 winform 上有一个 numericupdown 控件,我在测试时注意到,您不仅可以选择通过按下 up 和 down 键来更改值,还可以简单地从键盘输入值。
我不想要那个。我只希望用户只能通过单击框中的向上和向下按钮来更改 numericupdown 的值。
到目前为止,我根本找不到解决方案。
有谁知道如何做到这一点?
根据您允许的值范围,听起来对用户体验不利。
为此,您需要创建一个继承自 NumericUpDown 的控件并覆盖 OnKeyPress/OnKeyDown 方法。
使用updown.ReadOnly = True;
对我不起作用。这似乎是一个反复出现的错误。但是捕捉任何变化然后撤消它。为此,将函数绑定updown_ValueChanged()
到updown.ValueChanged
属性。
decimal spin = 1;
private void updown_ValueChanged(object sender, EventArgs e)
{
if (updown.ReadOnly)
{
if (updown.Value != spin)
{
updown.Value = spin;
}
}
else spin = updown.Value;
}