C# 错误提供程序检查了输入文本框的位数
我使用了C#winform中的错误提供程序。在我的表格中有文本框。错误提供程序检查它是否包含两个数字。这意味着输入是数字,数字的数量是两个数字。当输入为2字符时,错误提供程序工作,但当输入为字符和数字时,错误提供程序不工作。 请检查我的密码C# 错误提供程序检查了输入文本框的位数,c#,winforms,validation,C#,Winforms,Validation,我使用了C#winform中的错误提供程序。在我的表格中有文本框。错误提供程序检查它是否包含两个数字。这意味着输入是数字,数字的数量是两个数字。当输入为2字符时,错误提供程序工作,但当输入为字符和数字时,错误提供程序不工作。 请检查我的密码 private void textbox1_Leave(object sender, EventArgs e) { string text = textbox1.Text; bool hasD
private void textbox1_Leave(object sender, EventArgs e)
{
string text = textbox1.Text;
bool hasDigit = false;
foreach (char letter in text)
{
if (char.IsDigit(letter))
{
hasDigit = true;
break;
}
}
// Call SetError or Clear on the ErrorProvider.
if (!hasDigit )
{
errorProvider1.SetError(textbox1, "Please enter digit");
}
else if(hasDigit)
{
if (text.TextLength != 2)
{
errorProvider1.SetError(textbox1, "Number of digit is two number");
}
else
errorProvider1.Clear();
}
}
所以您要确保所有字符都是数字。但你只检查了第一个,如果这是一个数字,你就打破了循环:
foreach (char letter in text)
{
if (char.IsDigit(letter))
{
hasDigit = true;
break;
}
}
相反,您可以使用Linq来实现这一点<代码>可枚举。所有都是为此目的而制定的:
bool allDigits = text.All(c => Char.IsDigit(c));
(但也许我完全偏离了正轨,因为问题不太清楚,imho)