示例#1
0
        private void InitializeControlList()
        {
            _dockingControls         = new DockedControlCollection(this);
            _mapButtonToControl      = new Dictionary <ToolStripButton, AutoResizeControl>();
            _mapDockingControlToData = new Dictionary <DockingControl, DockingControlData>();

            _dockingControls.ControlAdded += new DockedControlCollection.ControlAddedHandler(_controlList_ControlAdded);
        }
示例#2
0
        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);
        }
示例#3
0
 private void _controlList_ControlAdded(DockedControlCollection list, DockingControl control)
 {
     _inExternalAddControl = true;
     AddControl(control, -1, DockControlHelpers.GetDockedDimension(control, this.Dock));
     _inExternalAddControl = false;
 }