验证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
我怎样才能做到这一点呢?
我建议创建一个单独的验证方法,并在提交时调用它。试试这个:
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;