通过方法验证TextBox

时间:2013-05-26 15:37:02

标签: c#

我只为方法创建一个类,所以我可以在项目中一直使用它们。目前我正在尝试制作文本框验证方法,但我遇到了一些问题。

我正在使用它:

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。我做错了什么?

3 个答案:

答案 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); 
                            });
}