Cannnot resize Child Controls in a FlowLayoutPanel

2019-06-20 03:54发布

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

2条回答
在下西门庆
2楼-- · 2019-06-20 04:31

FlowLayoutPanel control calculates the width of an implied column from the widest child control in the column. All other controls in this column with Anchor or Dock properties are aligned or stretched to fit this implied column. The behavior works in a similar way for horizontal flow directions. The FlowLayoutPanel control calculates the height of an implied row from the tallest child control in the row, and all docked or anchored child controls in this row are aligned or sized to fit the implied row.

check msdn documentation here http://msdn.microsoft.com/en-us/library/ms171633.aspx

查看更多
一夜七次
3楼-- · 2019-06-20 04:47

The FlowLayoutPanel is only meant to layout it's child controls in a dynamic way. This does not mean that they will automatically resize within the FlowLayoutPanel. I'm guessing that the FlowLayoutPanel ignores the Anchor properties of it's child controls.

To achieve this effect you'll need to manually resize your child controls on the FlowLayoutPanel's SizeChanged event.

At this point though, you may want to reconsider whether the FlowLayoutPanel is really what you want to be using. If you know that you always want a button to fill the width of the FlowLayoutPanel, you might as well stick it in a Panel and use the anchors, or set it's Dock property.

查看更多
登录 后发表回答