我只为方法创建一个类,所以我可以在项目中一直使用它们。目前我正在尝试制作文本框验证方法,但我遇到了一些问题。
我正在使用它:
public bool ValidateIntTextBoxes(params TextBox[] textBox)
{
int value = 0;
return int.TryParse(textBox.ToString(), out value);
}
我正在使用它:
public bool IsValid()
{
return ValidateIntTextBoxes(AgeTextBox);
}
private void OKButton_Click(object sender, EventArgs e)
{
//This if statement is just to test the mothod
if(IsValid())
{
MessageBox.Show("Success");
}
else
{
AgeTextBox.BackColor = Color.Red;
}
}
问题是,IsValid()方法总是返回false。我做错了什么?
答案 0 :(得分:2)
您正在输入TextBox
s的集合,但不会迭代它们。此外,您正在呼叫ToString
。
像这样更新ValidateIntTextBoxes
:
public bool ValidateIntTextBoxes(TextBox textBox)
{
int value = 0;
return int.TryParse(textBox.Text, out value);
}
答案 1 :(得分:2)
它应该是:
return int.TryParse(textBox[0].Text.Trim(), out value);
。您还需要遍历所有textBox
es
public bool ValidateIntTextBoxes(params TextBox[] textBox)
{
bool valid = true;
int value;
foreach(var t in textBox){
if((int.TryParse(t.Text.Trim(), out value) == false) {
return false;
}
}
return valid;
}
答案 2 :(得分:0)
验证所有文本框
public bool ValidateIntTextBoxes(params TextBox[] textBox)
{
return textBox.All(t => {
int value = 0;
return int.TryParse(t.Text, out value);
});
}