2012-01-05 21 views
0

私はwinforms app、.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

関連する問題