1. 程式人生 > >C# 單例模式實現例項產生一個窗體物件

C# 單例模式實現例項產生一個窗體物件

單例模式實現例項產生一個窗體物件      開發過程中遇到了這樣一種情況,單擊按鈕產生一個窗體並顯示出來但是每次點選都會彈出一個新的窗體,這與想要的效果不免有些差異。我們需要若子窗體已經顯示出來,那麼我們就不再需要例項化新的子窗體,若是子窗體還未例項化或者關閉了這個子窗體,我們就需要例項化新的子窗體。結合這種需求,和所需到的知識,下面我將提供一種解決方案。 修改程式碼:       父窗體程式碼: ChildForm child = new ChildForm();                                 child.Show(); 修改程式碼:  子窗體程式碼  public partial class ChildForm : Form
    {
        //宣告靜態物件

        public static ChildForm child;
        public ChildForm()
        {
            InitializeComponent();
        }
        public static ChildForm CreatSingleForm2()
        {
          //窗體是否已在記憶體中存在,不存在就例項化,然後返回此例項
            if(child==null)
            {
                child = new ChildForm();
            }
            return child;
        }
        //在窗體關閉後清空窗體在記憶體中佔用的空間

        private void ChildForm_FormClosed(object sender, FormClosedEventArgs e)
        {
            child = null;
        }

    }

    父窗體程式碼:

              ChildForm child = ChildForm.CreatSingleForm2();
              child.Show();