TableLayoutPanel - 在调整父控件大小时调整每个单元格的大小

时间:2017-09-18 06:14:48

标签: c# .net winforms tablelayoutpanel

我正在处理一个包含TableLayoutPanel的控件。 该面板包含X行和Y列 - 其中每个单元格的大小相同。 每个单元格包含Control 在调整父控件的大小时,我希望每个单元格也可以调整大小,并保持相同的大小。

我已尝试在添加到单元格时设置Controls' Anchor

control.Anchor = AnchorStyles.Left | AnchorStyles.Top |
                 AnchorStyles.Right | AnchorStyles.Bottom;

但这只会使最底行和最右列扩展。

1 个答案:

答案 0 :(得分:2)

使用设计器或代码,您可以将SizeType列和行设置为Percent,并为其大小指定相同的百分比值。同时将控件的Dock属性设置为Fill

例如:

tableLayoutPanel1.ColumnStyles.Clear();
tableLayoutPanel1.RowStyles.Clear();
for (var i = 0; i < tableLayoutPanel1.ColumnCount; i++)
{
    var percent = 100f / (float)tableLayoutPanel1.ColumnCount;
    tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, percent));
}
for (var i = 0; i < tableLayoutPanel1.RowCount; i++)
{
    var percent = 100f / (float)tableLayoutPanel1.RowCount;
    tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, percent));
}