2011-10-13 69 views
-1

一些方法調用此方法具有以下代碼:停止後新形式執行代碼加載

Form frm = new Form(); 
frm.Show(); 

,但我不希望執行的形式加載後了第一種方法。如何防止和福斯特形式停止加載代碼

+3

爲什麼調用代碼不能返回?這是不是很清楚你在這裏問什麼。 –

回答

2

非常不清楚,我猜你想確保只有一個可以創建一個窗體的實例。你通過跟蹤實例的生活來做到這一點。像這樣:

private Form2 instance; 

    private void showForm2() { 
     if (instance == null) { 
      instance = new Form2(); 
      instance.FormClosed += delegate { instance = null; }; 
      instance.Show(); 
     } 
     else { 
      instance.WindowState = FormWindowState.Normal; 
      instance.Focus(); 
     } 
    } 
1

編輯:問題很清楚,所以我給基於我對它的理解回答......

形式創建後阻斷執行,直到窗體關閉時,儘量使用ShowDialog()

using(var frm = new Form1()) 
{ 
    frm.ShowDialog(); 

    // here your code is not executed until frm is closed... 
    //... 
    //... 
} 

請注意,你不希望創建Form類型的對象,因爲這是默認的基類,不會包含您的控件...