如何停止文本框验证?

时间:2019-01-21 07:31:29

标签: c#

我的文本框验证不为空,并且编辑模式的值不正确,当我在文本框中输入错误的数据时,我无法单击“取消”按钮,发生验证。

这是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;
                }
            }

当我单击“取消”按钮和“退出”按钮时,即使输入的数据错误,我也希望无法验证。

1 个答案:

答案 0 :(得分:0)

之所以没有“取消单击”事件,是因为按下“取消”按钮时,文本框具有焦点,并且“取消”按钮的CausesValidation属性设置为true。这会导致您的textBox Validating事件触发,因为“取消”按钮已设置为引起验证。

因此,只需将CausesValidation= false设置为“取消”和要跳过其文本框验证事件的其他按钮即可。

 btnCancel.CausesValidation = false;

此外,请确保在关闭表单时不会发生任何验证(即,单击表单的关闭按钮或调用this.Close()方法时)。将代码放在表单的load事件中。

this.Form1.AutoValidate = false;