0

我有一个自动滚动的 TableLayoutPanel,我正在向其中动态添加行。我希望每行的高度是 TableLayoutPanel 可见区域的 1/3,即在添加第 4 个面板和自动滚动启动之前面板的原始高度。我可以计算手动到达行的高度并将其设置为绝对高度,但可以调整 TableLayoutPanel 的大小。在那种情况下,我可以处理调整大小的事件并重新计算每行的绝对高度,但我想知道是否有更好的方法。有没有办法将行高指定为可见面板区域的百分比,还是我应该手动计算,绝对高度路线?

4

2 回答 2

2

TableLayoutPanel.RowStyle.Percent

行高被解释为表格高度的百分比

如果您有一个有 2 行的表,每行占面板的 50% - 并希望添加第三行,将所有行调整为 33%:

    tableLayoutPanel1.RowCount = 3;
    this.tableLayoutPanel1.RowStyles[0].Height = 33F;
    this.tableLayoutPanel1.RowStyles[1].Height = 33F;
    this.tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 33F));
于 2012-06-20T14:35:53.710 回答
1

我最终在自上而下的 FlowLayoutPanel 中实现了我需要的东西,锚定了 Top、Down、Left 和 Right,以便它可以根据表单调整大小。第一个子面板被添加到 FlowLayoutPanel 并分配一个略小于 FLP 宽度的宽度。每个后续的子面板都被赋予了一个 Dock 样式的填充,因此它的宽度会自动匹配第一个面板。每个面板都分配了 FLP.Height / 3 的高度,我有一个 FLP 的调整大小事件的处理程序,以根据需要重新计算子面板的高度。

感谢所有评论和回答的人。我赞成您的回答,因为它们对其他人有帮助,只是没有解决我的特定问题。

于 2012-06-20T18:10:05.233 回答