C#TableLayoutPanel填充

时间:2012-07-05 08:06:58

标签: c# size fill tablelayoutpanel

在TableLayoutPanel中,默认情况下,行或列中的最后一个元素占用剩余空间。如何实现倒数第二个或任何其他元素占用尽可能多的空间的布局,其中,最后一个元素只占用所需的空间?

2 个答案:

答案 0 :(得分:4)

这取决于其他行的设置方式。 假设所有其他行都是自动调整大小或固定大小,将倒数第二行的大小设置为100%即可。设计者生成的代码如下所示:

this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());

答案 1 :(得分:2)

我使用Windows Forms和.Net Framework 4进行了测试;

最简单的解决方案似乎是创建一个表格布局面板,并在每个列中嵌入控件。完成后,将所有列的大小设置为“AutoSize”。

然后取倒数第二列并将大小设置为“100%”

以下是我的设计师的代码:

    tableLayoutPanel1 = new TableLayoutPanel();
    tableLayoutPanel1.ColumnCount = 4;
    tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
    tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
    tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
    tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());

请务必首先嵌入控件,因为如果其他单元格中没有内容,则将倒数第二列设置为100%,那么使用设计器将控件放入空单元格中会很困难专栏有效地“窃取”了他们的空间。