无法在FlowLayoutPanel控件中调整子控件的大小

Ron*_*gor 6 anchor resize flowlayoutpanel

描述我试图创建一个可以扩展的FlowLayoutPanel,例如以水平方式.

FlowLayoutPanel及其子组件锚点已设置为Top-Left-Right

FlowLayoutPanel方向已设置为TopDown.

- >重新设置FlowLayoutPanel时,其子组件不会按顺序调整大小.

重现的步骤

  1. 在表单上创建FlowLayoutPanel控件.

  2. 将FlowLayoutPanel的FlowDirection设置为TopDown.

  3. 创建一个Button控件,并将其放在FlowLayoutPanel控件中.

  4. 选择Button和FlowLayoutPanel并将其Anchor设置为Top-Left-Right

  5. 尝试在水平方向上扩展FlowLayoutPanel.

- > FlowLayoutPanel调整大小但不是Button

Len*_*ong 7

FlowLayoutPanel仅用于以动态方式布局它的子控件.这并不意味着它们会在FlowLayoutPanel中自动调整大小.我猜测FlowLayoutPanel会忽略它的子控件的Anchor属性.

要实现此效果,您需要在FlowLayoutPanel的SizeChanged事件上手动调整子控件的大小.

但是,此时您可能想重新考虑FlowLayoutPanel是否真的是您想要使用的内容.如果您知道总是需要一个按钮来填充FlowLayoutPanel的宽度,那么您也可以将其粘贴到Panel中并使用锚点,或者设置它的Dock属性.


小智 5

FlowLayoutPanel控件根据列中最宽的子控件来计算隐含列的宽度。该列中具有Anchor或Dock属性的所有其他控件均已对齐或拉伸以适合此隐含列。对于水平流向,此行为以类似的方式起作用。FlowLayoutPanel控件从该行中最高的子控件计算出一个隐含行的高度,并且该行中所有停靠或锚定的子控件的对齐或大小均适合该隐含行。

在此处查看msdn文档http://msdn.microsoft.com/zh-cn/library/ms171633.aspx