【问题标题】:Scrolling Troubles滚动问题
【发布时间】:2014-12-24 01:49:46
【问题描述】:

我有一个窗体和窗体上的流布局面板。我正在向流布局面板动态添加文本框,并将流布局面板的自动滚动设置为 true,动态文本框的显示非常不准确。是否可以有一个垂直滚动条来滚动窗口窗体以及流布局面板上的数据?

我尝试将 AutoScroll 属性设置为 True,将 WrapContents 设置为 False,但这只会为流布局面板添加滚动条,而不是整个表单。我还尝试编写代码以添加滚动条,这很成功,但只会滚动表单而不滚动流布局面板。有没有办法使用停靠在表单右侧的 1 个滚动条来滚动表单和流布局面板?

我用来创建滚动条的代码如下。

        VScrollBar scrollbar1 = new VScrollBar();
        scrollbar1.Dock = DockStyle.Right;
        Controls.Add(scrollbar1);

编辑 #1 ---- 我还尝试像这样将滚动条添加到表单以及表单布局面板中,这导致滚动条甚至不显示。

        VScrollBar scrollbar1 = new VScrollBar();
        scrollbar1.Dock = DockStyle.Right;
        Controls.Add(scrollbar1);
        flowlayoutpanel1.Controls.Add(scrollbar1);

编辑 #2 ---- 我想要一个能够滚动整个 windows 窗体的滚动条,适用于 windows 窗体和流布局面板。

编辑 #3 ----- 上面发布的“可能的答案”不适用于我的问题,因为它只显示了如何将垂直滚动条添加到面板而不是一个滚动条来控制表单本身和面板。

【问题讨论】:

  • 我对你的问题感到困惑。您让 FlowLayoutPanel 滚动,但不希望这样,因为按照您的措辞,您希望整个表单滚动。然后您添加了一个滚动条,它滚动了整个表单,但没有滚动流布局面板。你能澄清一下你到底想要发生什么吗?或许可以通过屏幕截图或演示来展示您正在尝试执行的操作?
  • 我想我明白了。如果您的 FlowLayoutPanel 周围没有其他控件,我认为将面板的 AutoSize 属性设置为 true 会得到您想要的。
  • 对,所以 FlowLayoutPanel 应该已经超出了表单的边界,滚动表单也应该移动面板,让您看到它的其余部分。这不是正在发生的事情吗?

标签: c# winforms scrollbar flowlayoutpanel


【解决方案1】:

确保您的控件设置如下:

FlowLayoutPanel
    AutoSize = true
    AutoScroll = false
    WrapContents = true
    Anchor = Top (required) | Left (optional)

MainForm
    AutoScroll = true

根据我们的聊天记录,这些应该是让您前进的设置!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 2017-12-27
    • 2020-04-06
    • 2012-10-13
    • 2011-11-20
    • 1970-01-01
    相关资源
    最近更新 更多