DevExpress動態向DockManager中增加DockPanel,並向DockPanel中動態增加XtraForm


private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (rootPanel==null)
            {
                rootPanel = new DockPanel();
                rootPanel.Text = "RootPanel";
                var dockpanel_container = new ControlContainer();//創建一個容器對象

                //此項必須,如果不將容器對象加入到panel中,則會出現子窗體Form將Panel覆蓋的情況
                //此現象會造成將panel拖出窗體浮動時,就無法再進行拖動,只需要給最頂層的panel加這個對象就行了
                rootPanel.Controls.Add(dockpanel_container);

                XtraForm2 form2 = new XtraForm2();
                form2.TopLevel = false;//將子窗體的頂級屬性去除,否則無法加入panel
                form2.FormBorderStyle = FormBorderStyle.None;
                form2.Dock = DockStyle.Fill;
                rootPanel.Controls.Add(form2);
                form2.Visible = true;

                //注意,如果主窗體上沒有加入 documentManager,則panel無法Fill
                this.dockManager1.AddPanel(DockingStyle.Left, rootPanel);

                ////加入 documentManager 之后,只用設置此屬性則此panel直接就在中間占滿
                rootPanel.DockedAsTabbedDocument = true;
                return;
            }

            //加入其它窗體,因為panel2是由其它的panel創建的,所以不再需要加入容器 ControlContainer
            DockPanel panel2 = rootPanel.AddPanel();
            panel2.Text = "Panel2";
            XtraForm2 form3 = new XtraForm2();
            form3.TopLevel = false;//將子窗體的頂級屬性去除,否則無法加入panel
            form3.FormBorderStyle = FormBorderStyle.None;
            form3.Dock = DockStyle.Fill;
            panel2.Controls.Add(form3);
            form3.Visible = true;
           
        }

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM