在WinForm中经常用到MDI容器。
MDI容器就是所谓的多文档界面。
不过我们实际应用中一般只用到一个父容器,以及在同一时间只能有一个子窗体。
就像上图一样。
单键模式
public void ShowChildForm<T>()
{
//通过数据类型创建泛型对象
Form newForm = (Form)Activator.CreateInstance(typeof(T));
bool b1 = true;//默认该窗体不存在
foreach (Form frm in this.MdiChildren)
{
if (frm.GetType()==newForm.GetType())
{
frm.Activate();
b1 = false;
}
}
if (b1)
{
newForm.MdiParent = this;
newForm.Show();
}
}
只有一个活动子窗体
<span style="font-size:18px;">public bool ShowOnlyOne()
{
bool b1 = true;
if (this.MdiChildren.Length == 0)
{
b1 = true;
}
else
{
b1 = false;
}
return b1;
}</span>
调用
<span style="font-size:18px;"> private void 借阅ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (ShowOnlyOne())
{
ShowChildForm<BookBorrow>();
}
} </span>