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

时间:2009-12-04 00:44:47

标签: resize anchor flowlayoutpanel

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

FlowLayoutPanel及其子组件锚已设置为左上角

FlowLayoutPanel方向已设置为TopDown。

- >重新调整FlowLayoutPanel时,其子组件不会按照自定义大小调整。

重现

的步骤
  1. 在表单上创建一个FlowLayoutPanel控件。

  2. 将FlowLayoutPanel的FlowDirection设置为TopDown。

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

  4. 选择Button和FlowLayoutPanel并将其Anchor设置为左上角

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

  6. - > FlowLayoutPanel已调整大小但不是Button

2 个答案:

答案 0 :(得分:7)

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

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

此时,您可能想重新考虑FlowLayoutPanel是否真的是您想要使用的。如果你知道你总是想要一个按钮来填充FlowLayoutPanel的宽度,你也可以将它粘贴在Panel中并使用锚点,或设置它的Dock属性。

答案 1 :(得分:5)

FlowLayoutPanel控件从列中最宽的子控件计算隐含列的宽度。具有Anchor或Dock属性的此列中的所有其他控件将对齐或拉伸以适合此隐含列。对于水平流动方向,该行为以类似的方式起作用。 FlowLayoutPanel控件计算行中最高子控件的隐含行的高度,此行中所有停靠或锚定的子控件都对齐或调整大小以适合隐含的行。

在这里查看msdn文档http://msdn.microsoft.com/en-us/library/ms171633.aspx