6

我正在使用一个 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);
4

3 回答 3

13

如果将 flowlayoutpanel 停靠在顶部,它会占用父控件的大小。所以如果你想要水平滚动,你需要设置表单(或用户控件)的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);
于 2012-07-02T19:37:13.103 回答
12
fLayoutPnl.WrapContents = false;

这将解决问题。如果需要滚动条,设置MinimumSize面板的属性,之后应该出现滚动条

于 2016-01-20T04:05:48.817 回答
3

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

于 2019-01-08T03:29:50.733 回答