NumericUpDown允许用户键入大于最大值的数字

时间:2012-08-19 07:14:12

标签: c# textbox max minimum numericupdown

我班上有一个 NumericUpDown 变量。 最小最大值设置如下:

myNumericUpDown.Maximum = 9999;
myNumericUpDown.Minimum = 0;

这可以防止旋转框超过9999或低于0。

我遇到的问题是当用户在文本框内输入内容时,他们可以输入大于最大或小于最小的任意数字。

NumericUpDown 类中是否有属性可以控制文本框的最小值和最大值?或者我是否必须编写一个检查此条件的回调过程?

1 个答案:

答案 0 :(得分:2)

如果在窗体设计视图的属性窗格中设置属性,它将为您处理此问题。如果用户输入12000并且最大值为9999,则一旦控件失去焦点,控件就会降至最大值9999.它与负值相同。一旦控件失去焦点,它将自动变为0。

如果您不希望用户输入超过4位数字,那么您只需观看KeyDown事件即可。

    /// <summary>
    /// Checks for only up to 4 digits and no negatives
    /// in a Numeric Up/Down box
    /// </summary>
    private void numericUpDown1_KeyDown(object sender, KeyEventArgs e)
    {
        if (!(e.KeyData == Keys.Back || e.KeyData == Keys.Delete))
            if (numericUpDown1.Text.Length >= 4 || e.KeyValue == 109)
            {
                e.SuppressKeyPress = true;
                e.Handled = true;
            }
    }