2012-01-05 25 views
0

我在Winforms应用程序.NET 3.5(VS 2010)中使用了输入数据集。一个表单有DataGridView。在FormClosing事件中,我要求用户保存更改。如果用户不想保存,我想让这个关闭。但是,当DataGridView有验证错误时(我在数据表的ColumnChanging事件中验证数据集)表单将不会关闭。即使我没有捕获FormCLosing事件,表单也拒绝关闭。我想我必须以某种方式清除datagridvIew中的验证错误。有人可以提出解决方案吗?当datagridview有验证错误时关闭win窗体

编辑:另一个细节:表单是mdi子窗体。不用说,mdi父母也不会关闭。

回答

0

好的,这是我的错误。 mdi父母有一些处理mdi儿童事件的处理程序,但是当儿童表格关闭时,并非所有处理程序都被删除。

0

您可以通过设置falseFormClosingEventArgs.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; 
     } 
    } 
+0

我已经做到了;它不起作用。 – synergetic 2012-01-05 10:03:52