问题很简单:我有一个带有文本框的表单,在其中一个文本框中,我希望用户输入正数或负数 2位数数字。我正在寻找一种简单的方法来强制执行此限制,即无需解析数字并检查其绝对值是否低于100。
如果我将文本框maxlength设置为2,则不能输入低于-9的数字。如果maxlength为3,则可以输入99以上的数字。
蒙面文本框没有解决方案,我不能使“ - ”字面值可选,或者至少不是我所知道的。
这个限制的最简单的解决方案是:“如果没有输入” - “,则空文本框将接受2个输入字符,否则接受3”?处理更改事件以查看是否键入了“ - ”并重置maxlength似乎有点矫枉过正......
答案 0 :(得分:2)
你真的想要一个NumericUpDownControl
。使用它,并设置其Minimum
和Maximum
属性。根本不需要验证码,可以轻松解决您的问题。
如果您坚持使用TextBox
,那么在没有实际检查号码的情况下,您将无法获得所需的功能。您可以编写UserControl
来执行此操作,然后重复使用它,但您仍需编写一些验证代码。
使用ASP.NET / JavaScript样式验证验证整数。此示例使用带有ForeColor
红色的标签来显示验证消息。
private void numberTextBox_TextChanged(object sender, EventArgs e) {
int number;
bool isValid = int.TryParse(numberTextBox.Text, out number);
if (!isValid) {
validationLabel.Text = "Must be a two-digit number.";
validationLabel.Visible = true;
return;
}
if (number < -99 || number > 99) {
validationLabel.Text = "Must be between -99 and 99";
validationLabel.Visible = true;
return;
}
if (isValid) {
validationLabel.Visible = false;
// Do something else with your number
// if you need to.
}
}
编写代码进行验证没有任何问题。否则,使用现有的设计器属性可能无法获得良好的结果。
答案 1 :(得分:0)
检查文本框的KeyPress事件并检查字符是否为数字或=“ - ”
此代码只允许数字和负号,您可以检查数字是否大于100
private Sub Textbox1_KeyPress (ByVal sender as object, ByVal e as KeyPressEventArgs)
If (e.IsDigit(e.KeyChar) OR e.KeyChar = '-') Then
e.Handled = false
End If
End Sub