在 TableLayoutPanel 中,默认情况下,行或列中的最后一个元素会占用剩余空间。如何实现倒数第二个或任何其他元素占用尽可能多的空间的布局,除此之外,最后一个元素仅占用必要的空间?
问问题
3518 次
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 回答