问题在于:
我有一个接受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
?
答案 0 :(得分:3)
查看属性Control.CausesValidation
。将取消按钮设置为false
。
答案 1 :(得分:2)
在“取消”按钮上将CausesValidation
设置为false。