在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>