private void InitializeControlList() { _dockingControls = new DockedControlCollection(this); _mapButtonToControl = new Dictionary <ToolStripButton, AutoResizeControl>(); _mapDockingControlToData = new Dictionary <DockingControl, DockingControlData>(); _dockingControls.ControlAdded += new DockedControlCollection.ControlAddedHandler(_controlList_ControlAdded); }
private void DockControl(Point dropPoint, DockControlContainer container, int dimension) { Point containerLocalDropPoint = container.PointToClient(PointToScreen(dropPoint)); int index = 0; DockedControlCollection controls = container.DockedControls as DockedControlCollection; foreach (DockingControl child in controls) { Rectangle bounds = child.Bounds; switch (container.Dock) { case DockStyle.Top: case DockStyle.Bottom: if (bounds.Right >= containerLocalDropPoint.X) { if (containerLocalDropPoint.X < (bounds.Left + bounds.Right) / 2) { container.DockControl(this, index, dimension); return; } } break; case DockStyle.Left: case DockStyle.Right: if (bounds.Bottom >= containerLocalDropPoint.Y) { if (containerLocalDropPoint.Y < (bounds.Top + bounds.Bottom) / 2) { container.DockControl(this, index, dimension); return; } } break; } index += 1; } container.DockControl(this, container.DockedControlList.Count, dimension); }
private void _controlList_ControlAdded(DockedControlCollection list, DockingControl control) { _inExternalAddControl = true; AddControl(control, -1, DockControlHelpers.GetDockedDimension(control, this.Dock)); _inExternalAddControl = false; }