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; } }