0

我在 Windows 窗体应用程序中有几个面板,它们按两列和最多 4 行排序,因此最多 8 个面板。每个面板中包含的元素数量在运行时会发生变化,因此为了不浪费显示器上的位置,我将它们全部设置为自动调整大小。问题是,我不知道如何正确放置它们,例如当第一个缩小时如何使其他三个出现一点,因此它们之间没有太多空间。

4

1 回答 1

2

尝试使用 theTableLayoutPanel或 the FlowLayoutPanel(甚至可能是 a SplitContainer)。它们对于此类任务都非常有用。Containers您可以在工具箱的部分中找到它们。您可以通过适当地设置面板的边距来保持正确的距离。为您提供不同的TableLayoutPanel选项来调整行和列的大小(绝对大小或百分比大小或自动)。此外,通过使用面板和控件的DockAnchor属性,您可以在调整大小或添加和删除控件时获得动态行为。

您可能还必须设置控件的MinimumSizeMaximumSize属性。

您可以像这样添加控件TableLayoutPanel

int count = tableLayoutPanel1.Controls.Count;
int newColumn = count % 2;
int newRow = count / 2;
if (newRow >= tableLayoutPanel1.RowCount) {
    tableLayoutPanel1.RowCount++;

    // Set appropriate row style
    tableLayoutPanel1.RowStyles.Add(new RowStyle { SizeType = SizeType.AutoSize });
}
var newControl = new Button { Dock = DockStyle.Fill };
tableLayoutPanel1.Controls.Add(newControl, newColumn, newRow);
于 2012-12-08T20:31:41.010 回答