方法一:
//判断MDI子窗体是否存在
public static bool IsTheFormOpened(Form mainFrm ,string frmName)
{
Form[] tmpFrm = mainFrm.MdiChildren;
foreach (Form myFrm in tmpFrm)
{
if (myFrm.Name == frmName)
return true;
}
return false;
}
调用:
if (!IsTheFormOpened(this, "BranchMain"))
{
BranchMain bm = new BranchMain();
bm.WindowState = FormWindowState.Maximized;
bm.MdiParent = this;
bm.Show();
}
方法二:单件模式
在MDI子窗体中编写创建窗体对象的函数
例如:
private static WorkerMain worker;
public static WorkerMain CreateForm()
{
if (worker == null || worker.IsDisposed)
{
worker = new WorkerMain();
}
return worker;
}