2

好好看看这个 数字

我有一个顶部面板,它停靠在Top我的表单 ( AutoSize == True, AutoSizeMode == GrowOnly) 上。在其中,我有一个停靠到( , ) 的FlowLayoutPanel ,以及停靠到( ) 的普通静态面板静态面板有一个固定的宽度,但它的高度可以被拉伸。FlowLayoutPanel包含许多向右对齐的子元素。FillAutoSize == TrueAutoSizeMode == GrowOnlyRightAutoSize == False

我想要它,所以当用户将表单的大小调整到所有 FlowLayout 子级无法容纳在同一“行”上时,FlowLayoutPanelTop PanelStatic Panel都在高度上增长以适应被截断的子级。行”,可能还有第三、第四等等。

就目前而言(在本例中),可能重叠的孩子被撞到第二条“线”,但没有一个高度可以显示出来。我在这些不同的面板中以各种方式摆弄了各种停靠和自动调整参数。

我认为这不会太难,但我无法仅使用设计时可用的功能来使其工作。也许这是不可能的,或者我错过了一些东西。谢谢你!

4

2 回答 2

3

我尝试了多种方法。这对我有用:

TableLayoutPanel( Anchor= Top, Left, Right, ColumnCount=2 RowCount=1, Autosize = True, AutosizeMode = GrowAndShrink) 替换您的顶部面板,并为右列提供 x 像素的固定宽度(左列将调整为 100%)

在左栏中输入您的FlowLayoutPanel( Autosize = True, AutosizeMode = GrowAndShrink, Anchor= Top, Left, Right)

在右栏中放一个Panel( Autosize = False, Anchor= Top, Bottom, Left, Right)

这是它的外观:Blue= FlowLayoutPanel,Green=Panel

调整大小前 调整大小
在此处输入图像描述
在此处输入图像描述

不要忘记为您的表单设置最小宽度。或者它可能看起来像这样
在此处输入图像描述

于 2014-01-20T16:18:31.893 回答
1

我在我的电脑上试过这个,看到你的问题。

造成这种情况的原因是您在混合嵌套控件的 AutoSize 和 Dock 属性时应该小心。

Flowlayoutpanel.Dock 设置为 Fill,因此它不能根据其中的控件增加大小。它只取决于其父级的大小。将 FOP 设置为 Dock = None 并改为使用锚点 - 上、左、右。

我能够在我的电脑上完成这项工作。如果您需要帮助,请告诉我。

于 2014-01-20T15:14:18.327 回答