我的文本框验证不为空,并且编辑模式的值不正确,当我在文本框中输入错误的数据时,我无法单击“取消”按钮,发生验证。
这是Windows窗体应用程序,我进行了验证。
if (dataLogic.IsEmpty(txtSubCourseName.Text))
{
dataLogic.DisplayEmptyMsg();
e.Cancel = true;
return;
}
if (tag != "New")
{
DataTable dt = new DataTable();
sda = new SqlDataAdapter("SELECT * FROM tblSubCourse WHERE SubCourseName='" + txtSubCourseName.Text + "'", con);
con.Open();
sda.Fill(dt);
con.Close();
if (dt.Rows.Count > 0)
{
txtSubCourseName.Text = dt.Rows[0]["SubCourseName"] + "";
}
else
{
dataLogic.EmptyMsg();
e.Cancel = true;
return;
}
}
当我单击“取消”按钮和“退出”按钮时,即使输入的数据错误,我也希望无法验证。
答案 0 :(得分:0)
之所以没有“取消单击”事件,是因为按下“取消”按钮时,文本框具有焦点,并且“取消”按钮的CausesValidation
属性设置为true。这会导致您的textBox Validating事件触发,因为“取消”按钮已设置为引起验证。
因此,只需将CausesValidation= false
设置为“取消”和要跳过其文本框验证事件的其他按钮即可。
btnCancel.CausesValidation = false;
此外,请确保在关闭表单时不会发生任何验证(即,单击表单的关闭按钮或调用this.Close()方法时)。将代码放在表单的load事件中。
this.Form1.AutoValidate = false;