加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 17:28:30 所属栏目:百科 来源:网络整理
导读:我的班上有一个NumericUpDown变量.最小值和最大值设置如下: myNumericUpDown.Maximum = 9999;myNumericUpDown.Minimum = 0; 这可以防止旋转框超过9999或低于0. 我遇到的问题是当用户在文本框内键入时,他们可以键入任何大于Maximum或小于Minimum的任意数字.
我的班上有一个NumericUpDown变量.最小值和最大值设置如下:

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

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

我遇到的问题是当用户在文本框内键入时,他们可以键入任何大于Maximum或小于Minimum的任意数字.

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

解决方法

如果在窗体设计视图的属性窗格中设置属性,它将为您处理此属性.如果用户输入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;
            }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读