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();
            }
        }
传入一个窗体,先检查这个窗体是不是有副本,如果有副本,则置前,否则新创建并显示.
使用方法:
程序代码
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");
        }

原文地址:https://www.cnblogs.com/bennylam/p/1590401.html