我有一个带有文本框的表单,它只能接受1980 - 2011年间的4位数年份值。 我确信应该有一个简单的c#验证控件来实现这个验证检查,但我似乎无法找到它。
有什么建议吗?
答案 0 :(得分:4)
答案 1 :(得分:2)
http://www.java2s.com/Tutorial/CSharp/0460__GUI-Windows-Forms/TextBoxvalidation.htm
尝试此链接,只需根据需要更改范围。 快乐的编码......
答案 2 :(得分:2)
首先我要说,使用max length属性设置为4,这样就不能输入多余的字符
除此之外,您必须连接自己的控件以验证它(可能是文本更改验证,丢失焦点等),这将检查只输入数字并且它们在您指定的值之间
答案 3 :(得分:1)
MaskedTextBox可以解决问题。根据需要设置遮罩:msdn。 但我怀疑它会检查值是否在一个范围之间。它可能只检查该值是否为整数。
答案 4 :(得分:0)
好的,我不打算在这里写下所有代码,但这就是我要做的事情:
在文本框的textchanged事件中;
对于这个,您需要逐个比较每个数字。我建议你编写一个方法来解析文本并将它们与你期望的值进行比较。像这样:
private bool IsNumberValid(string text)
{
String min = "1980",max=2011;
try
{
int minNumber = Convert.ToInt32(min.Substring(0,text.length));
int maxNumber = Convert.ToInt32(max.Substring(0,text.length));
int myNumber = Convert.ToInt32(text);
if(myNumber <= max && myNumber >= min)
return true;
}
catch(Exception ex)
{
return false; // number is not numeric
}
return false;
}
可能存在小错误,没有在VS中写入。您需要检查文本的长度,如果它为0,则不要调用此方法。