繁体   English   中英

如何停止文本框验证?

[英]How to stop textbox validation?

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

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

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

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

因此,只需为Cancel和其他要跳过textBox Validating事件的按钮设置CausesValidation= false即可。

 btnCancel.CausesValidation = false;

另外,请确保关闭表单时不进行任何验证(即,单击表单的关闭按钮或调用this.Close()方法)。 将下面的代码放入表单的load事件中。

this.Form1.AutoValidate = false;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM