如何使用NumericUpDown控件阻止键输入?

时间:2012-11-05 15:41:29

标签: winforms delphi-prism numericupdown oxygene

我在winform上有一个numericupdown控件,我注意到在测试时你不仅可以通过按向上和向下键来改变值,还可以从键盘输入值。

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

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

有谁知道怎么做?

3 个答案:

答案 0 :(得分:2)

根据您允许的值范围,用户体验很糟糕。

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

答案 1 :(得分:2)

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

updown.ReadOnly = true;

如需更多剪裁,请参阅此answer

答案 2 :(得分: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;
    }