参考了网上一些资料.如下:
//添加一个属性
public static 窗体 Instance
{
set{
}
get{
if(instance == null){
new 窗体();
}
return instance;
}
}
在窗体的构造函数中加入如下代码
创建窗体Closed事件
{
instance = null;
}
使用方法:
在要调用该窗体的地方加入如下代码
myfrm.Show();
myfrm.Activate();
自己的,如下:
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections;
using System.ComponentModel;
namespace WinForm
{
/// <summary>
/// FormManager 的摘要说明。
/// </summary>
public class FormManager
{
private static Form3 form3=null;
private static Form2 form2=null;
private FormManager()
{
}
public static Form2 Form2Ins
{
get{
if(form2==null)
{
form2=new Form2();
}
return form2;
}
}
public static Form3 Form3Ins
{
get
{
if(form3==null)
{
form3=new Form3();
}
return form3;
}
}
}
}
窗体的Closed事件里面加上FormManager.Form2Ins=null;
使用法:
FormManager.Form2Ins.Show()
又一方法,大致同上,只是将关闭的处理交到一个类来处理了.这样,就只需要修改FormManager这个就可以了
private static Form2 form2=null;
public static Form2 Form2Ins
{
get{
if(form2==null)
{
form2=new Form2();
form2.Closed+=new EventHandler(FormManager.ClosedWindow2);
}
return form2;
}
set
{
form2=value;
}
}
private static void ClosedWindow2(object sender, System.EventArgs e)
{
form2=null;
}
本想把关闭全部写在一个方法里面,看来还要看看委派这里了..请大家多多指点
欢迎大家踊跃拍砖!!!