我在 Windows 窗体应用程序中有几个面板,它们按两列和最多 4 行排序,因此最多 8 个面板。每个面板中包含的元素数量在运行时会发生变化,因此为了不浪费显示器上的位置,我将它们全部设置为自动调整大小。问题是,我不知道如何正确放置它们,例如当第一个缩小时如何使其他三个出现一点,因此它们之间没有太多空间。
问问题
911 次
1 回答
2
尝试使用 theTableLayoutPanel
或 the FlowLayoutPanel
(甚至可能是 a SplitContainer
)。它们对于此类任务都非常有用。Containers
您可以在工具箱的部分中找到它们。您可以通过适当地设置面板的边距来保持正确的距离。为您提供不同的TableLayoutPanel
选项来调整行和列的大小(绝对大小或百分比大小或自动)。此外,通过使用面板和控件的Dock
或Anchor
属性,您可以在调整大小或添加和删除控件时获得动态行为。
您可能还必须设置控件的MinimumSize
和MaximumSize
属性。
您可以像这样添加控件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 回答