1:遍历
foreach (Form frm in Application.OpenForms)
{
if (frm is form1)
{
form1.Activate();
form1.WindowState = FormWindowState.Normal;
return;
}
}
Form1 form1 = new Form1();
form1.Show();
2:判断是否释放
Form1 F1 ;
if(F1 == null || F1.IsDisposed)
{
F1 = new Form1();
F1.Show();//未打开,直接打开。
}
else
{
F1.Activate();//已打开,获得焦点,置顶。
}
3:泛型
先创建一个创建窗体实例的单例
public class GenericSingleton where T : Form, new()
{
private static T t = null;
public static T CreateInstrance()
{
if (t == null || t.IsDisposed)
{
t = new T();
}
else
{
t.Activate(); //如果已经打开过就让其获得焦点
t.WindowState = FormWindowState.Normal;//使Form恢复正常窗体大小
}
return t;
}
}
调用方式:
Form2 form2 = GenericSingleton.CreateInstrance();
form2.Show();