跳过从控制框关闭窗体的验证



我有一个带有文本框的简单表单,我想让用户在关闭或跳过此控件之前在文本框中输入一些数据,但是当我处理验证事件时,我只能通过放置一个 CauseValidation 属性设置为 true 的取消按钮来关闭表单。我的问题是,即使文本框中没有写入任何内容,如何启用控制框中的 X 按钮以关闭表单?通过添加form_closing处理程序,此按钮在我第二次单击它时起作用,但是我可以仅按一次X按钮关闭表单吗?

这是我的表格.cs文件:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    namespace Validation
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private void textBox1_Validating(object sender, CancelEventArgs e)
            {
                if(textBox1.Text.Trim().Equals(string.Empty))
                {
                e.Cancel=true;
                errorProvider1.SetError(textBox1,"Error");
                }
                else
                    errorProvider1.SetError(textBox1,"");
            }
       private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            textBox1.CausesValidation = false;
        }
        }
    }

多谢

是的,试试这个。

  private void Form2_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (textBox1.CausesValidation)
            {
                textBox1.CausesValidation = false;
                Close();
            }
        }

除了前面的答案,此方法也有效:

private void Input_FormClosing(object sender, FormClosingEventArgs e)
        {

          e.Cancel = false;
        }

相关内容

  • 没有找到相关文章

最新更新