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; }