最大化表单时 FlowLayoutPanel 中的空 space

Empty space in FlowLayoutPanel when maximizing the Form

我正在将 Dock 属性 设置为 Fill 的 UserControl 添加到我的主窗体。 UserControl 有一个同样停靠(填充)的 FlowLayoutPanel,并且 AutoScroll 属性 设置为 True。

FlowLayoutPanel 包含 5 个组框,每个组框都有自己的大小。当窗体(或用户控件)处于正常大小 (716x520) 时,组框从上到下,一切正常。

但是,当我最大化表单(或只是将其变大)时,组框会重新排列,并且在前 2 个组框之后会出现一个奇怪的 space。这就像有行,如果同一行的另一个组框更大,那么将出现 space 来完成高度差。

这里有一些图片可以更好地解释它:

显然,您为 FlowDirection 而不是 TopDown 指定了 LeftToRight。所以当布局面板足够宽时,第一行就会有其他组框的空间...

该布局有点类似于文本的自动换行,根据可用宽度,您可以在第一行中获得尽可能多的单词。

所以如果你改变方向,如果你有足够的高度,你就会有一个单列。

该问题还有其他可能的解决方案。假设组框都是固定大小,那么您可以将流布局面板停靠设置为 None 这样面板就不会调整到可用宽度(然后通过给一个适当的大小来防止有多个列那个面板。

另一种可能性是使用基于 table 的布局。鉴于你所有的分组框都具有相同的宽度,所以这不是必需的(工作时使用流式布局会更简单一些)。

但实际上,如果有足够的空间并避免滚动条,您可能更愿意在屏幕上显示所有组框。这可以使用流布局来完成。在您的情况下,您可能想要使用 TopDown 流、顶部停靠、布局面板自动调整大小(并且可能将自动滚动放在用户控件上)。