【问题标题】:How To Limit a masked textbox to only accept an integer between 0-11, C#?如何将蒙面文本框限制为仅接受 0-11 之间的整数,C#?
【发布时间】:2016-01-29 23:02:08
【问题描述】:

好的,所以我一直在寻找答案,并且真的认为我只是在谷歌上搜索错误的东西。无论如何,我正在使用 Visual Studio 2012 并制作一个简单的 winform,BMI 计算器。我有一个蒙版文本框供用户输入英寸。目前该框设置为仅接受一位或两位长的整数,但我还想让此文本框仅允许用户输入 0-11 之间的数字。关于如何做到这一点的任何帮助都会很棒。 盒子是这样的:

    private void heightInches_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
    {

    }

我确实解析了文本框并将输入分配给一个变量:

    inches = int.Parse(heightInches.Text);

为了确保输入不能留空,我正在使用这个:

 if (string.IsNullOrWhiteSpace(heightInches.Text))
            {
                MessageBox.Show("Please Enter An Input For Inches.");

                return; 
            }

【问题讨论】:

  • 感谢您的快速回复!但我正在寻找一种不会让用户在框中输入大于 11 的内容的方法。因此,例如,有人在框中键入 2,他们不能再用整数跟随它,因为 20 年代的任何东西都太大了,但如果他们键入 1,他们可以在 1 之后键入的唯一整数将是 0 或 1,要么使他们的最终输入 10 或 11。
  • 强制将所有内容放入错误的框中。使用 1NumericUpDown1 并将 Minimum 设置为 0 并将 Maximum 设置为 11。瞧!此外,您还可以获得用户能够使用鼠标或向上/向下箭头来更改值的额外好处。
  • 使用正确的组件(NumericUpDown)将是您的最佳选择。见肯怀特的评论
  • @KenWhite 谢谢你的建议。

标签: c# winforms integer range maskedtextbox


【解决方案1】:

最简单的解决方案是使用 NumericUpDown,并将 Minimum 设置为 0,将 Maximum 设置为 11。这也会有允许用户使用鼠标或 UpArrowDownArrow 以及 0-9 的额外好处输入值。

【讨论】:

    【解决方案2】:

    选择 0-11 的 ComboBox 似乎最简单,也允许键盘输入。

    【讨论】:

    • 不知道你为什么为此被否决 - 这对我来说似乎是一个合理的解决方案。给你一个 +1 来抵消。
    • 赞成,这也是一个不错的选择,我选择了 numericUpDown 但这同样有用。谢谢!
    【解决方案3】:

    我会使用处理程序 onTextChanged

     private void heightInches_TextChanged(object sender, EventArgs e) Handles heightInches.TextChanged
    {
        Try {
          If(cint(yourTextBox.Text) > 11) {
             MsgBox("Larger than 11"); }
          }
       Catch {
          MsgBox("Not a Valid Integer"); }
       End Try 
    }
    

    我确定我的语法有点不对劲 - 但你应该明白这一点。

    【讨论】:

    • 呃!此代码尝试使用螺丝刀敲钉子。有一个专门为允许有限范围的数值而设计的控件,它还提供开箱即用的鼠标和键盘(向上/向下箭头)支持。需要零代码 - 只需设置几个控件属性即可。 (不反对,但它远非最佳解决方案。)
    • 嗯,我从来没有听说过数字上/下 - 很奇怪......我现在会去看看。感谢您的提示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 2013-01-26
    • 1970-01-01
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多