程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> MDI窗體程序中防止子窗體被多次實例化——Singleton的C#實現

MDI窗體程序中防止子窗體被多次實例化——Singleton的C#實現

編輯:.NET實例教程
晚上逛CSDN論壇的時候,看到C#區有位朋友問“防止MDI子窗體被多次實例化”,我隨即寫了這篇文章。

其實這個問題,就是經典的23種設計模式中的單件模式(Singleton),下面用C#實現之:

首先我們有2個Windows Form,主窗體叫Form1,子窗體叫ChildForm。在主窗體中加入一Menu,用來實例化子窗體,我們在Form1.cs中寫入下代碼:

private static ChildForm childForm; //靜態變量,保存唯一實例

private void menuItem2_Click(object sender, System.EventArgs e)
{
ChildForm childForm = GetChildForm(); //獲取子窗體對象
childForm.Show(); //顯示之
}

private ChildForm GetChildForm()
{
//先後次序不能錯,前一個條件用來判斷是否是第一次,後一個條件用來判斷子窗體是否被關閉了
if( childForm == null || childForm.IsDisposed )
{ //第一次實例化也好,被關了也好,都重新實例化
childForm = new ChildForm();
childForm.MdiParent = this;
}

return childForm;
}

----------------------------------------------------------------------------------------------------------
OK, just easy like this! Enjoy it!
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved