示例#1
0
        private void SetPanelMinSize()
        {
            // calculate min panel size
            int minWidth       = _tManager.GetMinWidth() + 6;
            int minHeight      = _tManager.GetMinHeight();
            int minWidthShift  = minWidth - scTasks.Panel2MinSize;
            int minHeightShift = minHeight - scTasks.Height + 100;

            int panelWidth     = scTasks.Width;
            int splitterDist   = scTasks.SplitterDistance;
            int windowLVMargin = this.Size.Width - lvFiles.Columns[0].Width;

            if (minWidthShift != 0 || minHeightShift != 0)
            {
                // panel size
                scTasks.Width = scTasks.Width + (minWidth - scTasks.Panel2.Width);

                // window size
                this.Size = new Size(this.Size.Width + (scTasks.Width - panelWidth),
                                     this.Size.Height + (minHeightShift > 0 ? minHeightShift : 0));

                // listview column size
                lvFiles.Columns[0].Width = this.Size.Width - windowLVMargin;

                // min window size
                this.MinimumSize = new Size(this.Width,
                                            this.MinimumSize.Height + minHeightShift);

                // min panel size
                scTasks.Panel2MinSize = minWidth;
                scTasks.MinimumSize   = new Size(scTasks.Panel1MinSize + scTasks.Panel2MinSize + scTasks.SplitterWidth,
                                                 minHeight);

                scTasks.SplitterDistance = splitterDist;
            }
        }