2014-05-15 37 views
0

在我的節目我打開每一個表格的ShowDialog的幫助和前一天的收盤一傢俱有幫助:形式已經可見不能顯示爲模式對話框

this.Hide(); 
...some code... 
this.Close(); 

但是,當我想打開第二次填寫表格,我得到了標題中的錯誤。它會是什麼?也許是因爲我使用了希望第二次打開的表單的Singleton模式。

+0

有大量的代碼,我甚至不知道是什麼,包括。因爲我理解ShowDialog中的問題 – user3560681

回答

0

而不是使用ShowDialog持續顯示錶單,您可以根據需要創建每個表單的新實例。例如

using(Form frm = new Form1) 
{ 
    DialogResult dr = frm.ShowDialog(this) 
    if(dr == DialogResult.Cancel) 
    { 
    ... 
    } 
} 

Form frm = new Form1(); 
DialogResult dr = frm.ShowDialog(this); 
if(dr == DialogResult.Cancel) 
{ 
    ... 
} 
frm.Dispose(); 

看到這個answer

+0

如何處理Singleton模式表單?我稱之爲Form1.Instance.ShowDialog()。 – user3560681

+0

不要使用Singleton。如果您的表單需要很長時間才能創建,您應該確定需要花費很長時間才能加載並緩存該靜態對象,而不是試圖將整個表單緩存爲靜態對象。 –

相關問題