gpt4 book ai didi

xml - 将控件停靠在停靠的 FlowLayoutPanel 内

转载 作者:行者123 更新时间:2023-12-02 21:11:59 25 4
gpt4 key购买 nike

我们将属性“Dock = Dockstyle.Fill”添加到 FlowLayoutPanel 中,以便它调整大小并填充其父控件。现在我们向 FlowLayoutPanel 添加了两个 GroupBox。它们应该与面板具有相同的宽度,但是当我们使用“Dock = Dockstyle.Top”时,它不起作用。

问题是,我们尝试使用“Width = Parent.Width”设置宽度。这可以工作,但是按照我们的方法,通过 XML 文件创建 UI,此时我们想要设置宽度,GroupBox 还没有父级。稍后将其添加到 FlowLayoutPanel 中。

顺便说一句,我们还在 FlowLayoutPanel 中添加了“FlowDirection = TopDown”,但如果 GroupBox 变小,则会将它们并排放置,而不是 TopDown。

因此,我们正在寻找一种方法,使所有控件都位于彼此之下,并使所有 GroupBox 的宽度与 FlowLayoutPanel 的宽度相同。

感谢您的每一次帮助,

多米尼克

最佳答案

在您描述的情况下,当您只需要自上而下的流程时,您可以简单地使用Panel而不是FlowLayoutPanel。将面板的 AutoScroll 设置为 true,并将其 Dock 设置为 Fill,然后将组框添加到面板并设置 Dock将它们的属性设置为Top

注意:
对于将来使用 FlowLayoutPanel,您可能会发现这很有帮助:

How to: Anchor and Dock Child Controls in a FlowLayoutPanel Control

This is the general rule for anchoring and docking in the FlowLayoutPanel control:

For vertical flow directions, the FlowLayoutPanel control calculates the width of an implied column from the widest child control in the column. All other controls in this column with Anchor or Dock properties are aligned or stretched to fit this implied column. The behavior works in a similar way for horizontal flow directions. The FlowLayoutPanel control calculates the height of an implied row from the tallest child control in the row, and all docked or anchored child controls in this row are aligned or sized to fit the implied row.

示例:

例如,如果您运行以下代码:

for (int i = 0; i < 5; i++)
{
var control = new GroupBox()
{
Text = i.ToString(),
Dock = DockStyle.Top,
Height = 40
};

this.panel1.Controls.Add(control);
//To reverse the order, uncomment following line
//control.BringToFront();
}

结果将是:

4
3
2
1
0

您可以通过取消注释代码来反转项目的顺序。

关于xml - 将控件停靠在停靠的 FlowLayoutPanel 内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32886872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com