2013-11-21 130 views

回答

3

您可以使用Application.OpenForms Property

if (Application.OpenForms.OfType<YourNonModalFormType>().Any()) 
    // one is already opened 

如果你想關閉這個形式:

var form = Application.OpenForms.OfType<YourNonModalFormType>().FirstOrDefault(); 
if (form != null) 
{ 
    // launched 
    form.Close(); 
} 
+0

謝謝。如果它已經啓動,我可以通過這種方式關閉它嗎? –

+0

@PaulSnow沒問題,已更新 –

+0

其實我正在使用.net 3.5。看起來好像它不能在我的代碼中使用。還有其他的方式嗎? –

0

另一種方法是手動聲明一個變量來跟蹤你的窗體實例:

public partial class Form1 : Form 
{ 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private Form2 f2 = null; 

    private void button1_Click(object sender, EventArgs e) 
    { 
     if (f2 == null || f2.IsDisposed) 
     { 
      f2 = new Form2(); 
      f2.Show(); 
     } 
     else 
     { 
      f2.Close(); 
     } 
    } 

}