【问题标题】:Windows forms - weird auto scroll behaviourWindows 窗体 - 奇怪的自动滚动行为
【发布时间】:2013-02-25 18:58:07
【问题描述】:

我遇到了关于 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;

Image showing the unwanted added space to the right of the checkboxes, color added to control background to illustrate the size of the control.

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    检查面板的AutoScrollMarginAutoScrollMinSize 属性。 AutoScrollMargin 应该是 (0,0),您可能还需要将 AutoScrollMinSize 设置为 maxWidth 值。

    【讨论】:

    • 由于某种原因,边距设置为 (50,0)...哦,有时您只是对显而易见的事情视而不见。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多