一段比較爽 的 MDI 窗體中打開子窗體的函數。 建議大家使用
代碼如下:
private void OpenChild(string Frmnamespace, string ChildTypeName)
{
int ret = 0;
foreach (Form frm in MdiChildren)
{
if (frm.GetType().Name == ChildTypeName)
{
frm.Activate();
ret = 1;
break;
}
}
if (0 == ret)
{
string className = Frmnamespace + "." + ChildTypeName;
Form Instance = (Form) Assembly.Load(Frmnamespace).CreateInstance(className);
Instance.MdiParent = this;
Instance.Show();
}
}
{
int ret = 0;
foreach (Form frm in MdiChildren)
{
if (frm.GetType().Name == ChildTypeName)
{
frm.Activate();
ret = 1;
break;
}
}
if (0 == ret)
{
string className = Frmnamespace + "." + ChildTypeName;
Form Instance = (Form) Assembly.Load(Frmnamespace).CreateInstance(className);
Instance.MdiParent = this;
Instance.Show();
}
}
傳入一個窗體,先檢查這個窗體是不是有副本,如果有副本,則置前,否則新創建並顯示.
使用方法:

private void LbtUserManager_ItemClick(object sender, ItemClickEventArgs e)
{
OpenChild("OuterRingRoad", "frmUserManager");
}
private void MenuUserPopdemod_ItemClick(object sender, ItemClickEventArgs e)
{
OpenChild("OuterRingRoad", "frmUserPopdemod");
}
private void MenuCurrentTimeData_ItemClick(object sender, ItemClickEventArgs e)
{
OpenChild("ORRTLB", "frmNowVDIInfo");
}
private void MenuCarCheckConfig_ItemClick(object sender, ItemClickEventArgs e)
{
OpenChild("ORRTLB", "frmVDISetting");
}
{
OpenChild("OuterRingRoad", "frmUserManager");
}
private void MenuUserPopdemod_ItemClick(object sender, ItemClickEventArgs e)
{
OpenChild("OuterRingRoad", "frmUserPopdemod");
}
private void MenuCurrentTimeData_ItemClick(object sender, ItemClickEventArgs e)
{
OpenChild("ORRTLB", "frmNowVDIInfo");
}
private void MenuCarCheckConfig_ItemClick(object sender, ItemClickEventArgs e)
{
OpenChild("ORRTLB", "frmVDISetting");
}
最後更新:2017-04-02 00:06:22