当datagridview有验证错误时关闭win表单

时间:2012-01-05 09:30:52

标签: winforms datagridview typed-dataset

我在winforms app,.net 3.5(VS 2010)中使用了类型化数据集。表单有DataGridView。在FormClosing事件中,我要求用户保存更改。如果用户不想保存,我想让关闭。但是,当DataGridView有验证错误时(我在datatables的ColumnChanging事件中验证数据集),表单将不会关闭。即使我没有抓住FormCLosing事件,表单也拒绝关闭。我想我必须以某种方式清除datagridvIew中的验证错误。有人可以提出解决方案吗?

编辑:还有一个细节:表单是mdi子表单。毋庸置疑,mdi父母也不会关闭。

2 个答案:

答案 0 :(得分:0)

您可以通过将false设置为FormClosingEventArgs.Cancel属性Closing处理程序参数来覆盖验证和(强制关闭)关闭表单。

 private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
     DialogResult res = MessageBox.Show("Close it?", "Close", MessageBoxButtons.YesNo);
     if (res == DialogResult.No)
     {
       e.Cancel = true;
     }
     else
     {
        e.Cancel = false;
      }
    }

答案 1 :(得分:0)

好的,这是我的错。 mdi parent为mdi子事件提供了一些处理程序,但是当子表单关闭时,并不是所有处理程序都被删除。