首页 > 解决方案 > TableLayoutPanel 列不会占用 100% 的宽度

问题描述

我有一个问题TableLayoutPanel。尽管使用了 100% 宽度的单列,但我添加的控件在布局创建器中保持分配给它的大小。

TableLayoutPanel panel = someTableLayoutPanel;

panel.RowStyles.Clear();
panel.ColumnStyles.Clear();
panel.Controls.Clear();

ColumnStyle columnStyle = new ColumnStyle(SizeType.Percent, 100F);
panel.ColumnStyles.Add(columnStyle);

int count = capabilityListManager.DeviceCount();

panel.RowCount = deviceCount;
panel.ColumnCount = 1;

for (int index = 0; index < count; index++)
{
    RowStyle rowStyle = new RowStyle(SizeType.Absolute, 120F);
    panel.RowStyles.Add(rowStyle);

    SomeCustomControl cell = new SomeCustomControl();
    panel.Controls.Add(cell, 0, index);
}

我认为这足以使控件始终调整大小以具有固定的 120 像素高度并占用 100% 提供的宽度TableLayoutPanel,但是结果如下所示:

在此处输入图像描述

我的自定义控件是带有边框的控件,并且TableLayoutPanel具有蓝色调 - 显然还有空间可供控件占用。

SomeCustomControl将其AutoSize属性设置为false。我错过了什么?

标签: c#winformstablelayoutpanel

解决方案


推荐阅读