【发布时间】: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