1

我在 winform 上有一个 numericupdown 控件,我在测试时注意到,您不仅可以选择通过按下 up 和 down 键来更改值,还可以简单地从键盘输入值。

我不想要那个。我只希望用户只能通过单击框中的向上和向下按钮来更改 numericupdown 的值。

到目前为止,我根本找不到解决方案。

有谁知道如何做到这一点?

4

3 回答 3

3

要禁止用户编辑,请将 Readonly 属性设置为 true。

updown.ReadOnly = true;

如需更多定制,您可以参考此答案

于 2012-11-05T16:14:27.100 回答
2

根据您允许的值范围,听起来对用户体验不利。

为此,您需要创建一个继承自 NumericUpDown 的控件并覆盖 OnKeyPress/OnKeyDown 方法。

于 2012-11-05T15:47:55.277 回答
0

使用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;
    }
于 2014-04-30T21:21:16.620 回答