通过方法验证文本框

本文关键字:文本 验证 方法 | 更新日期: 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); 
                            });
}