仅显示一个非模式窗体实例,如果该窗体已经存在,则显示并激活。
完全可以采用Singleton模式来实现,注意在Form.Closed事件中取消对窗体对象的引用,否则GC无法回收。

public class Form1 : System.Windows.Forms.Form
 { 
 
   // ...  public static Form Instance;
  private void Form1_Closed(object sender, System.EventArgs e)
   { 
 
     Instance = null;
   }}
private void button1_Click(object sender, System.EventArgs e)
 { 
 
   if (Form1.Instance == null)
     Form1.Instance = new Form1();  Form1.Instance.Show();
   Form1.Instance.Activate();
 }