保证一个类只有一个实例,并且提供一个访问ta的全局访问点。
例如在一个父窗体中,相同子窗体只能打开一次。
设置子窗体构造函数为private类型,声明一个public类型函数,进行实例化子窗体。
父窗体为form1,子窗体为FormToolbox
代码:
父窗体
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.IsMdiContainer = true; } private void toolStripButton1_Click(object sender, EventArgs e) { FormToolbox.getInstance().Show(); } private void toolStripButton2_Click(object sender, EventArgs e) { FormToolbox.getInstance().Show(); } }
public partial class FormToolbox : Form { private static FormToolbox ftb = null; private FormToolbox() //私有构造函数 { InitializeComponent(); } public static FormToolbox getInstance() { if (ftb == null || ftb.IsDisposed) { ftb = new FormToolbox(); ftb.MdiParent = Form1.ActiveForm; } return ftb; } }
原文:http://blog.csdn.net/buyingfei8888/article/details/22171495