0

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

4

2 回答 2

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());
于 2012-07-05T08:13:57.257 回答
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% 的大小,然后使用设计器将控件作为 100% 列有效地放入空单元格中会变得很棘手”窃取”他们的空间。

于 2012-07-05T08:14:56.517 回答