2016-11-14 34 views
0

我设置了这个flowLayoutPanel,里面的控件排列好了,直到最后到达面板的下边框,然后控件开始排列右边(形成另一个列)保持垂直流。我只想要一列。为什么flowlayoutPanel水平延伸?

this.panel.Anchor = 
((System.Windows.Forms.AnchorStyles) 
(((System.Windows.Forms.AnchorStyles.Top | 
System.Windows.Forms.AnchorStyles.Bottom)| System.Windows.Forms.AnchorStyles.Right))); 
this.panel.AutoScroll = true; 
this.panel.BorderStyle = BorderStyle.None;   
this.panel.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; 
this.panel.Location = new System.Drawing.Point(0, 184); 
this.panel.Name = "myPanel"; 
this.panel.RightToLeft = System.Windows.Forms.RightToLeft.No; 
this.panel.Size = new System.Drawing.Size(300, 371); 
this.panel.TabIndex = 9; 
+0

,因为它可以。它的工作是不浪费空间并避免显示滚动条。考虑使其宽度减少。 –

回答

2

使用

this.panel.FlowDirection = System.Windows.Forms.FlowDirection.LeftToRight;

,而不是

this.panel.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;

如果你只想控制后添加到您的FlowLayoutPanel的

只有一列比请在下面的代码添加到您的应用程序

this.panel.SetFlowBreak(<<YOUR_ADDED_CONTROL_NAME>>, true);

Button btn1 = new Button(); 
btn1.Text = "TEST"; 
btn1.Height = 30; 
btn1.Width = 100; 

this.panel.Controls.Add(btn1); 
this.panel.SetFlowBreak(btn1, true);