2016-11-10 8 views
1

こんにちは私はフォームを持っていて、ここに表示されているようにユーザーが現在のフォームを閉じるときに、フォームが閉じられましたSystem.Windows.Forms.dllで 'System.ComponentModel.Win32Exception'の未処理の例外が発生しました

private void frmDashboard_FormClosing(object sender, FormClosingEventArgs e) 
     { 
      this.Close(); 
      frmConcerns a = new frmConcerns(); 
      a.ShowDialog(); 
     } 

しかし、私は閉じるボタンをクリックしたとき、私はこのエラーを取得:

An unhandled exception of type 'System.ComponentModel.Win32Exception' occurred in System.Windows.Forms.dll 

Additional information: Error creating window handle. 
+0

通常、これはStackOverflowExceptionでクラッシュします。 Close()を呼び出すと、FormClosingイベントが再度発生します。私はあなたの本当のコードが少し違うと思うし、実際には1万のダイアログを作成することができました。その後OSはプラグを引っ張り、それ以上のウィンドウを作成させません。 Close()を呼び出さないでください。すでに完了しています。 –

答えて

1

this.Close()は、現在の形に閉じ - そうFormClosingイベントは持っていないので、実際にはすでに、今行われています呼び出されました。 その行を削除してください

また、ダイアログをモーダルウィンドウとして表示する場合は、親フォームを指定する必要があります。a.ShowDialog();の代わりにa.ShowDialog(this);を呼び出してください。

エラーがまだ残っている場合は、私が示唆している修正後に表示されたコードが正しいことを保証することができます。その場合、エラーはコードの他の部分で発生している必要があります。

+0

動作しません。同じエラーを返します。 –

関連する問題