如何限制屏蔽文本框仅接受0-11,C#之间的整数?

如何限制屏蔽文本框仅接受0-11,C#之间的整数?,c#,winforms,integer,range,maskedtextbox,C#,Winforms,Integer,Range,Maskedtextbox,好吧,所以我一直在到处寻找答案,老实说,我认为我只是在谷歌上搜索错误的东西。无论如何,我正在使用Visual Studio 2012制作一个简单的winform BMI计算器。我有一个蒙版文本框供用户输入英寸。目前,该框被设置为只接受一个一到两位数的整数,但我也希望该文本框只允许用户输入0-11之间的数字。任何关于如何做到这一点的帮助都将是巨大的。 该框如下所示: private void heightInches_MaskInputRejected(object sender, Mas

好吧,所以我一直在到处寻找答案,老实说,我认为我只是在谷歌上搜索错误的东西。无论如何,我正在使用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; 
            }

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

最简单的解决方案是使用数字上下键,将最小值设置为0,最大值设置为11。这还有一个额外的好处,即允许用户使用鼠标或向上箭头和向下箭头以及0-9来输入值。

我将使用处理程序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 
}

我确信我的语法有点错误,但你应该得到jist。

谢谢你的快速回复!但我正在寻找一种方法,不允许用户在框中输入大于11的内容。例如,有人在框中键入2,他们不能用更多的整数跟随它,因为20年代的任何东西都太大了,但是如果他们键入1,他们在1之后只能键入0或1,使他们的最终输入为10或11。将所有内容强制输入到错误的框中。使用1NumericUpDown1并将
最小值设置为0,将
最大值设置为11。瞧!此外,用户还可以使用鼠标或上/下箭头更改值,这将为您带来额外的好处。使用右组件(NumericUpDown)将是您的最佳选择。看肯·怀特的Comment@KenWhite谢谢,我同意你的建议。不知道为什么你被否决了,这对我来说似乎是一个合理的解决方案。给你一个+1来抵消。向上投票,这也是一个很好的选择,我选择了数字向上向下,但这同样有用。谢谢啊!此代码尝试使用螺丝刀敲打钉子。有一个专门为允许有限范围的数值而设计的控件,它还提供了开箱即用的鼠标和键盘(向上/向下箭头)支持。由于不需要任何代码,只需设置几个控件属性就可以了。(不是向下投票,但这远不是最佳解决方案。)嗯,我甚至从来没有听说过数字上/下-奇怪。。。我现在将进一步调查。谢谢你的提示。