有时需要多次弹出一个窗体,但是窗体较为复杂弹出缓慢,下方的单例模式实现则较好的解决了这个问题,好处是窗体是静态的,仅构造一次,第二次弹出的时候相对比较快
1 using System; 2 using System.Windows.Forms; 3 4 namespace SingleFormDemo 5 { 6 public partial class PopForm : Form 7 { 8 private PopForm() 9 { 10 InitializeComponent(); 11 } 12 13 private static PopForm _instance; 14 15 //窗体静态单例方法 16 public static PopForm Singleton() 17 { 18 return _instance ?? (_instance = new PopForm()); 19 } 20 21 private void button1_Click(object sender, EventArgs e) 22 { 23 this.Close(); 24 25 } 26 //窗体正在关闭 27 private void PopForm_FormClosing(object sender, FormClosingEventArgs e) 28 { 29 _instance = null; 30 } 31 32 } 33 }
主窗体调用代码
1 private void button1_Click(object sender, EventArgs e) 2 { 3 PopForm.Singleton(); 4 PopForm.Singleton().ShowDialog(); 5 }
如果需要更进阶的了解单例模式,请看单例模式(Singleton)的6种实现