【问题标题】:How to disable horizontal scroll bar in FlowLayoutPanel?如何在 FlowLayoutPanel 中禁用水平滚动条?
【发布时间】:2011-04-05 18:21:53
【问题描述】:

我有一个 FlowLayoutPanel,上面有多个控件。我只想在垂直方向滚动。但是当我设置AutoScroll = true 时,我得到了垂直和水平滚动条。如何禁用水平滚动条而只保持垂直滚动条工作?

【问题讨论】:

    标签: c# winforms scrollbar flowlayoutpanel


    【解决方案1】:
    • AutoScroll 设置为 true
    • WrapContents 设置为 false。
    • 确保尺寸大于 控件的宽度加上垂直滚动条的宽度。

    水平滚动条应该消失。如果没有,请提供更多信息。

    【讨论】:

    • 谢谢!刚才我玩它,我发现如果我设置 flowDirection=leftToRight, flowlayoutPanel.Horizo​​ntalScroll.Visible = false, wrapContents = true。它有效......所以有多种方法可以做到这一点?还是非常感谢! :)
    • 我注意到启用 WrapContents(使用 LeftToRight 流)将创建“换行符”,因此不需要任何水平滚动条。实际上我不喜欢这样,我希望 WrapContents 为 false,但我仍然希望 FlowBreak 属性能够工作,以手动控制换行。但是,这不起作用。如果 WrapContents 为 false,则该控件的纯粹错误会忽略 FlowBreak 属性。嘘微软。又一次。
    • 我正在使用 WrapContents。为了达到我想要的效果,我将我的 FlowLayoutPanel 封装在一个 Panel 控件中,然后我将 Panel 的 AutoScroll 设置为 true,FlowLayoutPanel 的 autoscroll 设置为 false,它就可以工作了!
    【解决方案2】:

    将 AutoScroll 设置为 true。 将 WrapContents 设置为 false。 将 Padding Right 设置为 10。

    这对我来说很好用。

    【讨论】:

    • 我认为“没办法,它行不通”,但是是的,填充权是把戏:S
    • 这个技巧奏效了。唯一的问题是,根据子控件的字体大小,您必须调整填充。
    • 如何禁用垂直滚动条而不是所需的水平滚动条? @user2559770 ?
    【解决方案3】:

    这是我如何在 FlowLayoutPanel 上使用换行文本(WrapContents = true),仅垂直滚动条来实现多个标签。

    1. 我在表单上有一个 flowLayoutPanel1
    2. 如下设置form和flowLayoutPanel1的属性:

    表格:

    AutoScroll = True
    FormBorderStyle = Sizable(default)
    

    flowLayoutPanel1:

    Anchor = Top, Left, Right
    AutoSize = True
    FlowDirection = TopDown
    WrapContents = true
    
    1. 在表单类上实现此代码以进行测试

    int coorY = 0;
            public Form2()
            {
                InitializeComponent();
                for (int i = 0; i < 100; i++)
                {
                    flowLayoutPanel1.Controls.Add(new Label 
                    { 
                        Location = new Point(0, coorY + 20),
                        Font = new Font("Segoe UI", 10f),
                        Text = "I have a FlowLayoutPanel and there are multiple controls on it. I only want to scroll in vertical",
                        Width = flowLayoutPanel1.Width,
                        AutoSize = true
                    });
                    coorY += 20;
                }
            }

    Vertical scrollbar in action

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 2012-04-18
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      相关资源
      最近更新 更多