从控件箱中删除关闭表单的验证

时间:2012-12-16 07:04:31

标签: c# winforms validating-event

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

这是我的form.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;
        }
        }
    }

非常感谢

2 个答案:

答案 0 :(得分:1)

是的,试试这个。

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

答案 1 :(得分:0)

除了上一个答案,这个方法也有效:

private void Input_FormClosing(object sender, FormClosingEventArgs e)
        {


          e.Cancel = false;

        }