2016-08-27 14 views
0

Dockプロパティを持つUserControlをFillに設定しています。 UserControlには、ドッキング(Fill)されたFlowLayoutPanelがあり、AutoScrollプロパティはTrueに設定されています。フォームを最大化するときにFlowLayoutPanelの空白があります

FlowLayoutPanelには5つのグループボックスがあり、それぞれに独自のサイズがあります。フォーム(またはUserControl)が通常のサイズ(716x520)であれば、グループボックスは上から下に移動します。

しかし、フォームを最大化する(または単に大きくする)と、グループボックスが再配置され、最初の2つのグループボックスの後に奇妙なスペースが表示されます。行があり、同じ行の別のグループボックスが大きければ、高さの違いを完成させるスペースが表示されます。ここで

が良いことを説明するためのいくつかの画像です: Normal size of the UserControl When the UserControl is maximized

+0

フォームを最大化するとパネルも大きくなります。だからFLPはレイアウトを再計算し、これはそれが思い付いたものです。悪名高いビンのパッキング問題を解決しようとしません、それはNP困難な問題です。それは、目の瞬きより短い時間で完了する必要があります。機能ではなく、バグです。 –

+0

これには解決策がありますか、これをただ受け入れるべきですか? – Haytam

答えて

0

明らかにあなたはFlowDirection代わりのTopDownためLeftToRightを指定します。そのレイアウトパネルが十分に広いと、最初の行に他のグループボックスのための余地があります。

このレイアウトは、1行目のできるだけ多くの単語を得るテキストのためのワードラッピングと多少似ています使用可能な幅によって異なります。

方向を変更した場合、高さが十分であれば、列が1つになります。

この問題の解決方法は他にもあります。グループボックスがすべて固定サイズであると仮定すると、フローレイアウトパネルのドッキングをNoneに設定して、パネルが使用可能な幅にリサイズされないようにすることができます(パネルに適切なサイズを与えて複数の列を作成しないようにします)。

別の可能性は、テーブルに基づいてレイアウトを使用することです。すべてのグループボックスが同じ幅を持っていることを考えると、これは必要ありません(それが動作するとき、フローレイアウトを使用することが少し簡単です)。

しかし、実際には、十分なスペースがあり、スクロールバーを避けるために、すべてのグループボックスを画面上に表示することをお勧めします(フローレイアウトを使用して行うことができます)場合は、TopDownフロー、オートサイジング(おそらくオートスクロールユーザーコントロール上で)。

+0

さて、私はちょうどいくつかのテストをしました。 'TopDown'レイアウトが必要な場合、レイアウトパネルは左にドッキングする必要がありますが、すべてのグループボックスが収まるわけではない場合は、水平スクロールバーが表示されます。そうでなければ、 'LeftToRight'と' Top'ドッキングは、あなたが最初に持っていたのと同じ問題を起こすでしょう...したがって、 'AutoSize'と' FlowDirection'は関連しています。 – Phil1970

+0

私はTopDown FlowDirectionを試しましたが、フォームが最大化され、UserControl(およびThe FLP)のサイズが増えて、同じ行に2つのグループボックスがある場合は、1行に1つのグループボックスしか表示されず、すべて下がっています。 716x520のときに上から下に表示する方法はありますか?十分な大きさのときは、2つのグループボックスを1行に表示しますが、スペースはありませんか? – Haytam

+0

レイアウトが「TopDown」の場合、コンテナの高さは固定され、幅が調整されます。最初の列が上から2番目の列などであるため、ギャップはありません。しかし、変化する次元がXであるため、十分なスペースがない場合はスクロールバーが水平になります。最初に線を塗りつぶしたい場合は、すべてのグループボックスの高さを同じにする必要があります。あなたのグループボックスのキャプションとして番号を入れて、ホットフローレイアウトの作業を簡単に把握することができます。私が言ったオプションを試した後、あなたが望むものを手に入れることができないならば、唯一の解決策は自分のレイアウトをすることです。 – Phil1970

関連する問題