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

时间:2016-01-29 23:02:08

标签: c# winforms integer range maskedtextbox

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

glibc

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

    private void heightInches_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
    {

    }

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

    inches = int.Parse(heightInches.Text);

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

我会使用处理程序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。