验证 - (表格)取消按钮不起作用

时间:2013-04-19 21:02:06

标签: c# validation

由于我的CancelButton_Clicked事件,我在Validating事件中离开我的表单时遇到问题。

我有一个文本框,它有自己的验证方法,如果输入String为null或为空,则返回e.Cancel = true,否则为e.Cancel = false

现在,我有CancelButton这只是一个常规按钮,我想关闭当前表单,有点像这样:

CancelButton_Clicked(Object sender, EventArgs e)
{
this.Close();
}

但是,如果我这样做,并且如果文本框留空,它不会通过验证,我无法关闭表单。验证图标只是一直闪烁。 我尝试将CausesValidation设置为false,我也尝试了这个:

private void btnCancel_Click(object sender, EventArgs e)
{
    // Stop the validation of any controls so the form can close.
    AutoValidate = AutoValidate.Disable;
    Close();
}

但这一切都没有帮助。希望你能。干杯

3 个答案:

答案 0 :(得分:3)

我假设您已通过代码或设计师设置btnCancel.CausesValidation=false;

设置CausesValidation=false的{​​{1}},您可以拨打button的{​​{1}} Click

现在你可以做很多事情。

  1. 只需取消注册event内的button textbox个事件,即

    validating
  2. 只需使用布尔标志即可。在btnCancel事件中将其设置为true,并在验证事件

    中使用它
    btn_Cancel

答案 1 :(得分:0)

添加一个私有布尔成员,在CancelButtonClicked中将其设置为true,然后在验证中使用它

答案 2 :(得分:-1)

你错过了行this.Close()

吗?