我正在处理包含 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));
}