2016-11-14 6 views
0

Ich habe dieses flowLayoutPanel eingestellt, die Steuerelemente innen ordnen sich gut an, bis das letzte am unteren Rand des Panels ankommt, dann beginnen die Steuerelemente auf der rechten Seite anzuordnen (bilden eine weitere Spalte), um den vertikalen Fluss zu halten. Ich möchte nur eine Spalte.Warum flowlayoutPanel horizontal verläuft?

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

Da kann es. Seine Aufgabe ist es, keinen Platz zu verschwenden und die Anzeige von Bildlaufleisten zu vermeiden. Überlegen Sie, ob die Breite geringer ist. –

Antwort

2

Verwenden

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

statt

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

, wenn Sie nur eine Spalte wollen, als Sie bitte die folgenden Code in Ihrer Anwendung nur nach Kontrolle zu Ihrem Flowlayoutpanel hinzugefügt

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

Beispiel

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

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