2016-11-10 167 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事件再次被觸發。我懷疑你的真實代碼做的有點不同,你實際上設法創建了一萬個對話框。之後,操作系統將拔出插頭,不會讓您再創建任何窗口。不要致電Close(),它已經完成。 –

回答

1

this.Close()關閉當前的形式 - 這實際上是正在做的,現在已經因爲否則FormClosing事件不會有被調用。 刪除該行

此外,如果要將對話框顯示爲模式窗口,則應提供父窗體,以便不要調用a.ShowDialog();,而是調用a.ShowDialog(this);

如果錯誤仍然存​​在,我可以向您保證,在我提出的修改後,您所顯示的代碼將是正確的 - 我之前完成過類似的事情。在這種情況下,錯誤必須發生在您未顯示給我們的代碼的其他部分。

+0

它不起作用。它返回相同的錯誤 –

相關問題