最大化表单时FlowLayoutPanel中的空白空间

时间:2016-08-27 12:43:10

标签: c# flowlayoutpanel

我在我的主窗体中添加了一个UserControl,Dock属性设置为Fill。 UserControl有一个FlowLayoutPanel,它也停靠(Fill),AutoScroll属性设置为True。

FlowLayoutPanel包含5个groupbox,每个groupbox都有自己的大小。当Form(或UserControl)处于正常大小(716x520)时,组框从上到下都是好的。

但是当我最大化表单(或者只是使表单更大)时,组框会重新排列,并且在第一个组框之后会出现一个奇怪的空格。就像有行一样,如果同一行中的另一个组合框更大,那么就会出现一个空格来完成高度差异。

以下是一些可以更好地解释它的图片: Normal size of the UserControl When the UserControl is maximized

1 个答案:

答案 0 :(得分:0)

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

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

因此,如果您改变方向,如果您有足够的高度,您将拥有一列。

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

另一种可能性是使用基于表格的布局。鉴于您的所有组框都具有相同的宽度,这不是必需的(当它工作时使用流布局会更简单。)

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