1

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

非常感谢

4

2 回答 2

1

是的,试试这个。

  private void Form2_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (textBox1.CausesValidation)
            {
                textBox1.CausesValidation = false;
                Close();
            }
        }
于 2012-12-16T07:35:43.457 回答
0

除了前面的答案,这个方法也适用:

private void Input_FormClosing(object sender, FormClosingEventArgs e)
        {


          e.Cancel = false;

        }
于 2012-12-16T07:46:59.240 回答