描述 我试图创建一个可以扩展的FlowLayoutPanel,例如以水平方式扩展。
FlowLayoutPanel及其子组件锚已设置为左上角
FlowLayoutPanel方向已设置为TopDown。
- >重新调整FlowLayoutPanel时,其子组件不会按照自定义大小调整。
重现
的步骤在表单上创建一个FlowLayoutPanel控件。
将FlowLayoutPanel的FlowDirection设置为TopDown。
创建一个Button控件,并将其放在FlowLayoutPanel控件中。
选择Button和FlowLayoutPanel并将其Anchor设置为左上角
尝试在水平方向上扩展FlowLayoutPanel。
- > FlowLayoutPanel已调整大小但不是Button
答案 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