DockPanel页面回转

这篇博客介绍了在DockPanel控件中如何管理已打开的页面,确保当尝试再次打开已存在的页面时,能够自动跳转到该页面而不是创建新的实例。作者提供了两种方法:一是通过比较窗体的Text属性,二是依据窗体创建时的cs文件名来判断。在找到已打开的页面后,通过调用Activate()方法激活该窗体。未找到匹配的已打开页面时,则会创建并显示新窗体。
摘要由CSDN通过智能技术生成

问题:如果在DockPanel再次打开已经打开的页面,自动跳转到哪个已经打开的页面中;

关键代码:

 content.DockHandler.Activate();

 

方法一:在dockPanel控件中遍历已经的开得窗体,根据比对窗体的Text确定是否打开,若打开,则跳转到已经打开的窗体中

            DockContent dockContent = new frmSetData();
            bool flag = false;

            foreach (IDockContent content in dockPanel1.Contents)
            {
                string a = content.DockHandler.TabText.ToLower();
                string b = dockContent.Text;
                if (content.DockHandler.TabText.ToLower() == dockContent.Text)
                {
                    content.DockHandler.Activate();  //激活已经打开的窗体
                    flag = true;
                    break;
                }
            }  

方法二:在dockPanel控件中遍历已经的开得窗体,根据比对创建窗体时的cs文件名确定是否打开,若打开,则跳转到已经打开的窗体中 

            DockContent dockContent = new frmSetData();      
            DockContentCollection contents = this.dockPanel1.Contents;
            for (int i = 0; i < contents.Count; i++)
            {
                string a11 = contents[i].DockHandler.Form.Name.ToLower();
                string b11 = dockContent.GetType().Name.ToLower();

                bool flag2 = contents[i].DockHandler.Form.Name.ToLower().Equals(dockContent.GetType().Name.ToLower());
                if (flag2)
                {
                    contents[i].DockHandler.Activate();
                    flag = true;
                    break;
                }
            }
            bool flag3 = !flag;
            if (flag3)
            {
                dockContent.MdiParent = this;
                dockContent.WindowState = FormWindowState.Maximized;
                dockContent.Show(this.dockPanel1);
            }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值