如何避免.Validating()取消导致应用程序退出挂起?

时间:2011-08-16 10:27:02

标签: c# .net visual-studio

在Visual Studio C#Express 2010上,我发现取消。通过根据文档设置e.Cancel导致应用程序在退出时挂起来进行验证。例如运行下面的内容,然后单击标题栏“X”。

有人知道解决方案吗?感谢。

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 WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_Validating(object sender, CancelEventArgs e)
        {
            e.Cancel = true;
        }
    }
}

1 个答案:

答案 0 :(得分:3)

由于textBox1无效,因此无法关闭表单 - 如果您仍然希望允许用户关闭表单,那么您可以像这样处理FormClosing事件:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = false;
}

您需要以正常方式连接此事件,例如:

this.FormClosing += new FormClosingEventHandler(this.Form1_FormClosing);

如果您调试上述事件处理程序,如果验证事件hanlder将e.Cancel设置为true,则会看到truee.Cancel