2

私のプロジェクトには次のコードがあります。

try
{
      if (deleteSelector.ShowDialog() == DialogResult.OK)
      {
      }
}
catch (InvalidOperationException)
{
   //Bug workaround
}

try catch は、グリッドビューを含むポップアップ フォームが無効な操作の例外を発生させることがあるからです。これは推奨される回避策です。

http://connect.microsoft.com/VisualStudio/feedback/details/145633/invalidoperationexception-thrown-when-a-form-with-a-bound-datagridview-with-auto-sizing-columns-is-shown

以前、deleteSelector で Show を使用しましたが、回避策は完全に機能しました。現在、showdialog を使用すると、エラーがキャッチされなくなったようです (キャッチされていないエラー メッセージが表示されます)。エラーがキャッチされないのはなぜですか?

4

1 に答える 1

4

ShowDialog別のスレッドでダイアログを実行するため、例外は別のスタックで例外ハンドラーにスローされます。

別の回避策を見つけることをお勧めします - キャッチするだけInvalidOperationExceptionではかなりひどいものであり、後でフォームが適切な状態になるとは限りません。

于 2010-09-17T09:03:54.743 に答える