6

Description I was trying to create a FlowLayoutPanel that can be extended, for instance in the horizontal way.

FlowLayoutPanel and its sub component anchor has been set to Top-Left-Right

FlowLayoutPanel direction has been set to TopDown.

-> When rezising the FlowLayoutPanel, its sub- components are not resized accordinally.

Step to reproduce

  1. Create a FlowLayoutPanel control on your form.

  2. Set the FlowDirection of the FlowLayoutPanel to TopDown.

  3. Create a Button controls, and place it in the FlowLayoutPanel control.

  4. Select the Button and the FlowLayoutPanel and set their Anchor to Top-Left-Right

  5. Try to Extend FlowLayoutPanel on the horizontal way.

-> FlowLayoutPanel is resized but not the Button

4

2 に答える 2

7

FlowLayoutPanel は、その子コントロールを動的にレイアウトすることのみを目的としています。これは、FlowLayoutPanel 内で自動的にサイズ変更されるという意味ではありません。FlowLayoutPanel は、その子コントロールの Anchor プロパティを無視していると思います。

この効果を実現するには、FlowLayoutPanel の SizeChanged イベントで子コントロールのサイズを手動で変更する必要があります。

ただし、この時点で、FlowLayoutPanel が本当に使用したいものであるかどうかを再検討することをお勧めします。ボタンを常に FlowLayoutPanel の幅に合わせたいことがわかっている場合は、ボタンを Panel に貼り付けてアンカーを使用するか、Dock プロパティを設定することもできます。

于 2010-01-22T17:35:42.393 に答える
5

FlowLayoutPanel コントロールは、列内の最も広い子コントロールから暗黙の列の幅を計算します。Anchor または Dock プロパティを持つこの列の他のすべてのコントロールは、この暗黙の列に合わせて整列または引き伸ばされます。この動作は、水平の流れ方向に対しても同様に機能します。FlowLayoutPanel コントロールは、行内の最も高い子コントロールから暗黙の行の高さを計算し、この行のすべてのドッキングまたはアンカーされた子コントロールは、暗黙の行に合うように配置またはサイズ調整されます。

ここでmsdnのドキュメントをチェックしてください http://msdn.microsoft.com/en-us/library/ms171633.aspx

于 2013-04-15T17:59:06.040 に答える