flowlayoutpanel和水平滚动条问题

时间:2012-07-02 19:11:45

标签: c# winforms flowlayoutpanel

我正在使用一个flowlayoutpanel,每个逻辑都有很多按钮。我有一个问题,当我调整窗口大小时,我不是当窗口变小时我无法看到所有按钮水平排列。而当窗口变小时,按钮会下降到下一行。任何人都可以帮我解决这个问题吗?我只想让按钮水平排列,当窗口变小时,有一个水平滚动条。以下是我所拥有的。

fLayoutPnl.Controls.Add(btn1);
// snipped adding buttons from 2 to 15
fLayoutPnl.Controls.Add(btn16);
fLayoutPnl.Dock = System.Windows.Forms.DockStyle.Top;
fLayoutPnl.Location = new System.Drawing.Point(0, 10);
fLayoutPnl.Name = "fLayoutPnl";
fLayoutPnl.Size = new System.Drawing.Size(1245, 30);

3 个答案:

答案 0 :(得分:10)

如果将flowlayoutpanel停靠在顶部,则会占用父控件的大小。 因此,如果您想要水平滚动,则需要设置表单(或usercontrol)的AutoScrollMinSize。

否则,你可以这样做:

this.AutoScroll = true;    
this.fLayoutPnl.Dock = System.Windows.Forms.DockStyle.None;
this.fLayoutPnl.AutoSize = true;
this.fLayoutPnl.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.fLayoutPnl.Location = new System.Drawing.Point(0, 10);
this.fLayoutPnl.Name = "fLayoutPnl";
this.fLayoutPnl.Size = new System.Drawing.Size(1245, 30);

答案 1 :(得分:6)

fLayoutPnl.WrapContents = false;

这可以解决问题。如果需要滚动条,请设置面板的MinimumSize属性,之后应显示滚动条

答案 2 :(得分:0)

要通过垂直滚动查看流布局面板的所有内容,请将AutoScroll属性设置为True,并且不要忘记将WrapContents属性设置为True。 如果要通过水平滚动查看内容,请将AutoScroll属性设置为True,并且不要忘记将WrapContents属性设置为False。