dotnet/winforms

Setting SplitContainer.Panel2MinSize incorrectly changes SplitterDistance

Open

#3,568 创建于 2020年7月13日

在 GitHub 查看
 (0 评论) (0 反应) (0 负责人)C# (922 fork)batch import
:beetle: bughelp wanted

仓库指标

Star
 (4,100 star)
PR 合并指标
 (平均合并 14天 22小时) (30 天内合并 56 个 PR)

描述

  • .NET Core Version: 3.1.301

  • Have you experienced this same bug with .NET Framework?: Yes

Problem description: Changing Panel2MinSize in a horizontally oriented SplitContainer (Panel2 below Panel1) changes the SplitterDistance if Panel2MinSize > Panel2.Width.

Expected behavior: SplitContainer should respect its Orientation when changing Panel2MinSize. Changing Panel2MinSize in a horizontally oriented SplitContainer (Panel2 below Panel1) should only change the SplitterDistance if Panel2MinSize > Panel2.Height.

Minimal repro:

var form = new Form() { Size = new Size(200, 500) };
var splitContainer = new SplitContainer() { Orientation = Orientation.Horizontal };
splitContainer.Dock = DockStyle.Fill;
form.Controls.Add(splitContainer);
form.Show();

Debug.WriteLine(splitContainer.Panel2MinSize); // 25
Debug.WriteLine(splitContainer.Panel2.Height); // 227
Debug.WriteLine(splitContainer.SplitterDistance); // 230

splitContainer.Panel2MinSize = 205;

Debug.WriteLine(splitContainer.Panel2MinSize); // 205
Debug.WriteLine(splitContainer.Panel2.Height); // 269 (should be 227)
Debug.WriteLine(splitContainer.SplitterDistance); // 188 (should be 230)

贡献者指南