通过方法验证文本框
本文关键字:文本 验证 方法 | 更新日期: 2023-09-27 18:15:19
我只为方法创建一个类,所以我可以在我的项目中一直使用它们。目前我正试图使文本框验证的方法,但我有一些问题。
我用这个:
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。我哪里做错了?
应该是:
return int.TryParse(textBox[0].Text.Trim(), out value);
。你还需要遍历所有的textBox
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;
}
您正在输入TextBox
s的集合,但没有迭代它们。而且,你正在呼叫ToString
。
像这样更新你的ValidateIntTextBoxes
:
public bool ValidateIntTextBoxes(TextBox textBox)
{
int value = 0;
return int.TryParse(textBox.Text, out value);
}
验证所有文本框
public bool ValidateIntTextBoxes(params TextBox[] textBox)
{
return textBox.All(t => {
int value = 0;
return int.TryParse(t.Text, out value);
});
}