2009-12-04 63 views
5

描述 我试图创建一个可以扩展的FlowLayoutPanel,例如以水平方式。Cannnot调整FlowLayoutPanel控件中的子控件的大小

FlowLayoutPanel的及其子组件锚已被设置为左上,右

FlowLayoutPanel的方向已经确定,以自上而下的。

- >当重新设计FlowLayoutPanel时,其子部件不会调整一致。

步骤重现

  1. 创建窗体上的FlowLayoutPanel的控制。

  2. 将FlowLayoutPanel的FlowDirection设置为TopDown。

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

  4. 选择按钮和FlowLayoutPanel的,并设置其锚顶部左 - 右

  5. 尽量延长FlowLayoutPanel中上水平的方式。

- > FlowLayoutPanel的是调整而不是按钮

回答

6

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

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

在这一点上,你可能想重新考虑FlowLayoutPanel是否真的是你想要使用的。如果你知道你总是想要一个按钮来填充FlowLayoutPanel的宽度,那么你可以把它放在面板中并使用锚点,或者设置它的Dock属性。

4

FlowLayoutPanel控件根据列中最宽的子控件计算隐含列的宽度。此列中的所有其他控件(包括锚或Dock属性)均对齐或拉伸以适应此隐含列。该行为对于水平流动方向的工作方式类似。 FlowLayoutPanel控件根据行中最高的子控件计算隐含行的高度,并将该行中所有停靠或锚定的子控件对齐或调整大小以适应隐含行。这里http://msdn.microsoft.com/en-us/library/ms171633.aspx

+0

检查MSDN文档需要有像“FlowBreak”,它允许您设置各个控件的大小调整选项一个选项。我有一个类似的情况,我想要总是占用全部宽度,但是我仍然希望自动布局其他所有内容。目前的设置,我必须选择一个或另一个...我想要两个。 – 2014-04-10 18:56:17