验证c#中的一个方法

本文关键字:一个 方法 验证 | 更新日期: 2023-09-27 18:09:52

如果我有一个验证方法Method1,它返回e.Cancel true或false,并且看起来像这样:

private void textBox1_Validating_1(object sender, CancelEventArgs e)
{
    ErrorProvider errorProvider = new ErrorProvider();
    bool isEmpty = String.IsNullOrEmpty(textBox1.Text);
    if (isEmpty)
    {
        e.Cancel = true;
        errorProvider.SetError(textBox1, "txt");
    }
    else
    {
        e.Cancel = false;
        errorProvider.SetError(textBox1, "");
    }
}

我想要得到验证的结果,在我的另一个方法中,这里:

private void button4_Click(object sender, EventArgs e)
{
    //bool passed = this.Validate(textBox1_Validating_1);
    if (passed == false) return;

我想要这样的东西:

bool passed = this.Validate(textBox1_Validating_1);

只验证这一个方法。我该怎么做呢?

我可以这样做:

            bool passed = this.ValidateChildren();
        if (passed == false) return;

如果我这样做了,那么我就验证了所有的方法,但是我只想验证这个Method1我怎样才能做到这一点呢?

验证c#中的一个方法

我建议创建一个单独的验证方法,并在提交时调用它。试试这个:

 private void SubmitButton_Click(object sender, EventArgs e)
    {
        if (ValidateControls()==0)
        {
           //Form is validated
        }
    }
int ValidateControls()
{
    int flag = 0;
    errorProvider1.Clear();
    if (txtAge.Text.Trim() == String.Empty)
    {
        errorProvider1.SetError(txtAge, "Age is required");
        flag = 1;
    }
    ............................................
    ............................................
   // validate all controls
    ............................................
    ............................................
    if (txtSalary.Text.Trim() == String.Empty)
    {
        errorProvider1.SetError(txtSalary, "Salary is required");
        flag = 1;
    }
    return flag;
}
    public bool IsValidated()
    {
    return !String.IsNullOrEmpty(textBox1.Text);
    }
private void button4_Click(object sender, EventArgs e)
{
        bool passed = IsValidated();
}

像这样?

var cnclEvent = new CancelEventArgs();
textBox1_Validating_1(null, cnclEvent);
if (cnclEvent.Cancel) return;