创建单例模式步骤:
1、在子窗体中将要创建的单例对象构造函数私有化
2、在子窗体中提供一个静态方法,返回一个对象
3、在子窗体中创建一个单例对象
4、子窗体关闭时,需要释放单例对象
代码演示:
子窗体(Form2)设置如下:
public partial class Form2 : Form //子窗体
{
public static Form2 FormSingle = null; //③创建一个单例
private Form2() //①将要创建的单例对象构造函数私有化
{
InitializeComponent();
}
public static Form2 GetSingle() //②创建一个静态方法,返回一个对象
{
if (FormSingle==null)
{
FormSingle = new Form2();
}
return FormSingle;
}
private void Form2_FormClosing(object sender, FormClosingEventArgs e) //④ 子窗体关闭时,需要释放单例对象
{
FormSingle = null; //标志单例被关闭,允许下次创建
}
}
主窗体(Form1)设置如下:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) //主窗体调用
{
Form2 form2 = Form2.GetSingle(); //判断子窗体是否被创建
if (form2.WindowState==FormWindowState.Minimized) //如果子窗体最小化
{
form2.WindowState = FormWindowState.Normal; //将子窗体设置为默认(保持最前)
}
form2.Show(); //显示子窗体
}
}
运行结果如下: