保证一个类只有一个实例,并且提供一个访问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