public DockForm(Panel dragObject) { InitializeComponent(); this.Opacity = 0; if (dragObject is DockContainer) { DockContainer c = dragObject as DockContainer; if (c.panList.Count == 1) { this.ClientSize = (c.panList[0] as DockPanel).Form.ClientSize; } else { this.ClientSize = dragObject.Size; } if (c.removeable) { rootContainer = c; } else { rootContainer = new DockContainer(); rootContainer.Controls.AddRange((DockPanel[])c.panList.ToArray(typeof(DockPanel))); rootContainer.Controls.AddRange((DockContainer[])c.conList.ToArray(typeof(DockContainer))); ArrayList list = new ArrayList(); rootContainer.GetPanels(list); if (list.Count > 0) { rootContainer.DockType = (list[0] as DockPanel).Form.DockType; } } } else if (dragObject is DockPanel) { DockPanel p = dragObject as DockPanel; this.ClientSize = p.Form.ClientSize; rootContainer = new DockContainer(); p.Form.CopyToDockForm(this); } if (rootContainer.panList.Count > 0) { (rootContainer.panList[0] as DockPanel).Form.CopyPropToDockForm(this); rootContainer.SetFormSizeBounds(this); rootContainer.SelectTab(0); } rootContainer.Dock = DockStyle.Fill; this.Controls.Add(rootContainer); RegisterToMdiContainer(); }