public DevComponents.DotNetBar.Bar CreateBar(string strName, enumLayType layType) { DevComponents.DotNetBar.Bar bar = new DevComponents.DotNetBar.Bar(); bar.AccessibleRole = System.Windows.Forms.AccessibleRole.ToolBar; bar.AlwaysDisplayDockTab = true; bar.CanCustomize = false; bar.CanDockBottom = false; bar.CanDockDocument = true; bar.CanDockLeft = false; bar.CanDockRight = false; bar.CanDockTop = false; bar.CanHide = true; bar.CanUndock = false; bar.DockTabAlignment = DevComponents.DotNetBar.eTabStripAlignment.Top; bar.LayoutType = DevComponents.DotNetBar.eLayoutType.DockContainer; bar.SelectedDockTab = 0; bar.Stretch = true; bar.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2003; bar.TabStop = false; bar.Name = strName; DevComponents.DotNetBar.DockSite dockSite = null; switch (layType) { case enumLayType.BOTTOM: dockSite = this.barBottomDockSite; break; case enumLayType.FILL: dockSite = this.barFilldockSite; break; case enumLayType.LEFT: dockSite = this.barLeftDockSite; break; case enumLayType.RIGHT: dockSite = this.barRightDockSite; break; case enumLayType.TOP: dockSite = this.barTopDockSite; break; } if (dockSite != null) { dockSite.Controls.Add(bar); dockSite.DocumentDockContainer.Orientation = DevComponents.DotNetBar.eOrientation.Vertical; DevComponents.DotNetBar.DocumentBarContainer aDocumentBarContainer = new DocumentBarContainer(bar, bar.Size.Width, bar.Size.Height); dockSite.DocumentDockContainer.Documents.Add(((DevComponents.DotNetBar.DocumentBaseContainer)(aDocumentBarContainer))); } return(bar); }
private void OnEnableDocumentDocking(object sender, EventArgs e) { DotNetBarManager m=this.Component as DotNetBarManager; if(m.FillDockSite==null) { IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost)); if(dh==null) return; System.Windows.Forms.Control parent=dh.RootComponent as System.Windows.Forms.Control; if(parent==null) return; IComponentChangeService cc=(IComponentChangeService)GetService(typeof(IComponentChangeService)); if(cc==null) return; DesignerTransaction trans=dh.CreateTransaction("Document Docking Enabled"); DockSite fillDock=dh.CreateComponent(typeof(DockSite)) as DockSite; fillDock.Dock=System.Windows.Forms.DockStyle.Fill; cc.OnComponentChanging(parent,TypeDescriptor.GetProperties(typeof(System.Windows.Forms.Control))["Controls"]); parent.Controls.Add(fillDock); fillDock.BringToFront(); cc.OnComponentChanged(parent,TypeDescriptor.GetProperties(typeof(System.Windows.Forms.Control))["Controls"],null,null); cc.OnComponentChanging(m,TypeDescriptor.GetProperties(typeof(DotNetBarManager))["FillDockSite"]); m.FillDockSite=fillDock; cc.OnComponentChanged(m,TypeDescriptor.GetProperties(typeof(DotNetBarManager))["FillDockSite"],null,fillDock); DocumentDockContainer dockContainer=new DocumentDockContainer(); cc.OnComponentChanging(fillDock,TypeDescriptor.GetProperties(typeof(DockSite))["DocumentDockContainer"]); fillDock.DocumentDockContainer=dockContainer; cc.OnComponentChanged(fillDock,TypeDescriptor.GetProperties(typeof(DockSite))["DocumentDockContainer"],null,dockContainer); Bar bar=dh.CreateComponent(typeof(Bar)) as Bar; BarUtilities.InitializeDocumentBar(bar); TypeDescriptor.GetProperties(bar)["Style"].SetValue(bar,m.Style); DockContainerItem item=dh.CreateComponent(typeof(DockContainerItem)) as DockContainerItem; item.Text=item.Name; cc.OnComponentChanging(bar,TypeDescriptor.GetProperties(typeof(Bar))["Items"]); bar.Items.Add(item); PanelDockContainer panel=dh.CreateComponent(typeof(PanelDockContainer)) as PanelDockContainer; cc.OnComponentChanging(bar, TypeDescriptor.GetProperties(typeof(Bar))["Controls"]); item.Control=panel; cc.OnComponentChanged(bar, TypeDescriptor.GetProperties(typeof(Bar))["Controls"], null, null); //bar.Controls.Add(panel); panel.ColorSchemeStyle=m.Style; panel.ApplyLabelStyle(); cc.OnComponentChanged(bar,TypeDescriptor.GetProperties(typeof(Bar))["Items"],null,null); DocumentBarContainer doc=new DocumentBarContainer(bar); dockContainer.Documents.Add(doc); cc.OnComponentChanging(fillDock,TypeDescriptor.GetProperties(typeof(DockSite))["Controls"]); fillDock.Controls.Add(bar); cc.OnComponentChanged(fillDock,TypeDescriptor.GetProperties(typeof(DockSite))["Controls"],null,null); fillDock.RecalcLayout(); trans.Commit(); } }