2012-01-05 27 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