我在自动滚动system.windows.forms.panel方面遇到了问题。我有一个面板,我填写了复选框,如果复选框总数的高度要求超过面板的高度,它应该添加一个垂直滚动条。我的问题是它按预期处理垂直滚动条,但它也显示了一个不需要的水平滚动条。我通过将System.Windows.Forms.SystemInformation.VerticalScrollBarWidth添加到面板宽度来调整面板的宽度。
int prevMainTop = 0;
int maxWidth = 0;
foreach (List<String> arr in folderArr)
{
if (arr[0].Length * 7 > maxWidth) { maxWidth = arr[0].Length * 7; }
}
foreach (List<String> arr in folderArr)
{
CheckBox cb = new CheckBox();
cb.BackColor = Color.Chocolate;
cb.Checked = true;
cb.AutoSize = false;
cb.Width = maxWidth;
cb.Name = arr[0];
cb.Text = arr[0];
cb.Tag = arr[1];
cb.Top = prevMainTop;
prevMainTop = prevMainTop + 25;
this.mainPanel.Controls.Add(cb);
}
this.mainPanel.Width = maxWidth + System.Windows.Forms.SystemInformation.VerticalScrollBarWidth;
答案 0 :(得分:1)
检查面板的AutoScrollMargin
和AutoScrollMinSize
属性。 AutoScrollMargin
应为(0,0)
,您可能还需要将AutoScrollMinSize
设置为maxWidth
值。