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

How To Limit a masked textbox to only accept an integer between 0-11, C#?

好的,所以我一直在寻找答案,老实说我只是在谷歌上搜索错误的东西。无论如何,我正在使用 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 作为选项的 ComboBox 似乎最简单并且也允许键盘输入。

最简单的解决方案是使用 NumericUpDown,并将 Minimum 设置为 0,将 Maximum 到 11。这还有一个额外的好处,即允许用户使用鼠标或 UpArrowDownArrow 以及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 
}

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