在文本框验证事件中,如何忽略对某个按钮的点击?

时间:2014-03-06 00:55:23

标签: c# winforms

问题在于:

我有一个接受TextBox文本和2个按钮的表单,一个用于将文本保存到数据库中,另一个用于取消和关闭表单。该表单还有一个ErrorProvider,它在TextBox.Validating事件中使用,如下所示:

private void txtNombre_Validating(object sender, CancelEventArgs e)
{
    string errorMsg;
    if (!ValidateText(txtNombre.Text, out errorMsg))
    {
        // Cancel the event and select the text to be corrected by the user.
        e.Cancel = true;
        txtNombre.Select(0, txtNombre.Text.Length);

        // Set the ErrorProvider error with the text to display.  
        this.errorProvider1.SetError(txtNombre, errorMsg);
    }
}

它完成了预期的操作,不要让用户在填写必填字段之前在表单中执行任何操作,除了一件事:让用户通过“取消”按钮关闭表单。 我尝试将object sender与按钮cmdCancel进行比较,但这是不可能的,因为发件人始终是TextBox。

有关如何在用户点击cmdCancel

时忽略验证事件的建议

2 个答案:

答案 0 :(得分:3)

查看属性Control.CausesValidation。将取消按钮设置为false

答案 1 :(得分:2)

在“取消”按钮上将CausesValidation设置为false。