一段比较爽 的 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");
        }

 

时间: 2024-08-30 23:46:39

一段比较爽 的 MDI 窗体中打开子窗体的函数。 建议大家使用的相关文章

在主窗体中打开子窗体的问题

问题描述 如图我是在主窗体中开打一个子窗体,子窗体是是最大化显示的,但在主窗体最上面一行出现了和标题栏一样的东西有最小化和关闭那个按钮,有什么办法可以不显示整个那条标题栏--.谢谢,求救!!! 解决方案 解决方案二:newMDIChild.Dock=DockStyle.Fill;formborderstyle属性设为Nonemaximizebox属性设为Falseminizebox属性设为FalseWindowsState设为maximized解决方案三:不行,还是一样的.解决方案四:继续顶,不

在母窗体中嵌入子窗体,可不可以再在子窗体中再嵌入窗体

问题描述 比如有母窗体form1在form1中嵌入了子窗体form2,我现在想把form3嵌入到form2中,请问要怎么实现的,我把form2的IsMdiContainer设为true,运行时会报错;请大侠指教 解决方案 解决方案二:把form3的parent设置为form2解决方案三:我在form2的一个事件里这样写,但不行,为什么呢Report3Report3=newReport3();Report3.MdiParent=this;Report3.WindowState=FormWindow

C# 子窗体中调用父窗体中的方法(或多窗体之间方法调用)

本文转载:http://www.csframework.com/archive/2/arc-2-20110805-1771.htm 文章侧重点主要是讨论"窗体"与"窗体"之间方法的调用,以及"MDI父窗体"与"Chilid子窗体"之间如何相互的调用方法. C# 子窗体中调用父窗体中的方法(或多窗体之间方法调用) 看似一个简单的功能需求,其实很多初学者处理不好的,很多朋友会这么写: C# Code: //父窗体是是frmPare

单击树节点在父窗体中打开了几个子窗体,如何做到我选中节点后打开对应的子窗体???

问题描述 单击树节点在父窗体中打开了几个子窗体,如何做到我选中节点后打开对应的子窗体???-节点0---A---B---C选中节点A,弹出FORM1选中节点B,弹出FORM2选中节点C,弹出FORM3我的代码如下,但是只能打开同一下窗体,如何实现点击不同节点后显示相应的窗体呢privatevoidtrwFuncFrame_AfterSelect_1(objectsender,TreeViewEventArgse){System.Stringstr=trwFuncFrame.SelectedNod

Delphi类的入门例子(8): 遍历窗体中所有控件的函数

//显示窗体中所有控件的函数 function GetCtrls(Control: TWinControl; List: TStringList): Boolean; var i: Integer; obj: TWinControl; begin for i := 0 to Control.ControlCount-1 do begin obj := TWinControl(Control.Controls[i]); List.Add(obj.Name); //如果控件中包含其他控件, 则递归调

vb.net向父窗体传值-在vb.net中,子窗体如何向父窗体传值

问题描述 在vb.net中,子窗体如何向父窗体传值 多个窗体的变量对应的是多个SQL的视图(每个窗体变量数不同),当主窗体打开后OPC连接,打开子窗体(只能打开一个窗体),子窗体中_Load下读取的SQL视图变量名并读入一数组a(n)(全局变量)中,子窗体打开后,主窗体将a(n)读入b(n),并依据这些变量名寻找对应WINCC中的值.可是我的主窗体中应把判定子窗体是否打开的脚本写在什么事件下好呢,同时,我的OPC连接是不是也不能写在Form_Load下了,求高手指点. 解决方案 [VB.NET]

VB中从主窗体中设置子窗体中的TrueDbGrid的过滤数据,是非模态的对话框?

问题描述 VB中从主窗体中设置子窗体中的TrueDbGrid的过滤数据,是非模态的对话框? VB中从主窗体中设置子窗体中的TrueDbGrid的过滤数据,是非模态的对话框? 解决方案 在子窗体中定义一个函数 public sub setgrid(参数) ... end sub 在主窗体调用 form2.setgrid(传入你的参数)

MDI窗体应用程序子窗体和父窗体怎么做窗体分割

问题描述 MDI窗体应用程序子窗体和父窗体怎么做窗体分割 MDI窗体应用程序子窗体和父窗体怎么做窗体分割,在两个窗体之间怎么添加一个分割条? 解决方案 http://jingyan.baidu.com/article/5552ef473468fc518ffbc9d1.html 解决方案二: Windows应用程序C#创建MDI父窗体和子窗体

如何在父窗体的ListView中获取子窗体中datagridview中的值

问题描述 如何在父窗体的ListView中获取子窗体中datagridview中的值?详细啊本人只是初学者 解决方案 解决方案二:datagridview弄成public