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



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

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

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

,但这仅使底部排和右列扩展。

使用设计器或代码,您可以将列和行的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));
}

最新更新