Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Windows使用多个容器形成滚动条_C#_.net_Winforms_Horizontal Scrolling - Fatal编程技术网

C#Windows使用多个容器形成滚动条

C#Windows使用多个容器形成滚动条,c#,.net,winforms,horizontal-scrolling,C#,.net,Winforms,Horizontal Scrolling,在我的情况下,我很难让垂直和水平滚动条都按预期运行。该页面有多个可以展开和折叠的部分(一次只能展开一个)。为了尝试和演示我的页面布局,我将使用嵌套和一个愚蠢的命名约定,以尽可能清晰: ucParent pnlParent PNL1标题 pnl1 uc1 PNL2标题 pnl2 uc2 PNL3标题 pnl3 uc3-1 uc3-2 uc3-3 等等。现在,pnlParent具有dock=fill,而子面板为dock=top。所有pnlXTitle面板都有按钮,可通过将其直

在我的情况下,我很难让垂直和水平滚动条都按预期运行。该页面有多个可以展开和折叠的部分(一次只能展开一个)。为了尝试和演示我的页面布局,我将使用嵌套和一个愚蠢的命名约定,以尽可能清晰:

  • ucParent
    • pnlParent
      • PNL1标题
      • pnl1
        • uc1
      • PNL2标题
      • pnl2
        • uc2
      • PNL3标题
      • pnl3
        • uc3-1
        • uc3-2
        • uc3-3
等等。现在,pnlParent具有dock=fill,而子面板为dock=top。所有pnlXTitle面板都有按钮,可通过将其直接下方的面板设置为enabled=visible=false来触发展开/折叠行为

我希望在调整窗口大小和隐藏内容时,根据需要显示水平和垂直滚动条,但是我无法成功地引发这种行为

  • 对于ucParent.AutoScroll=false和pnlParent.AutoScroll=true,只有垂直滚动条存在
  • 对于ucParent.AutoScroll=true和pnlParent.AutoScroll=false,滚动条都不起作用
  • 对于ucParent.AutoScroll=true和pnlParent.AutoScroll=true,只有垂直滚动条存在
在上述所有示例中,对于所有其他面板和用户控件,AutoScroll=false。从我到目前为止读到的内容来看,我担心dock=top设置可能会干扰水平滚动条的行为。我可以使用AutoScrollMinSize强制它显示和工作,但是面板的大小不同,这让我觉得这更像是一个黑客而不是一个合适的解决方案

通过我的搜索,我找到了大量以前围绕Windows窗体和滚动条展开的讨论,但我没有找到足够具体的内容,我觉得我可以自信地确定我的应用程序的必要方向。我将非常感谢您能分享的任何信息,这些信息将阐明为什么滚动条不能按预期工作,以及如何进行补救


谢谢大家!

您遇到的问题与停靠调整控件大小以水平适应窗体的方式有关

将控件停靠到其容器顶部时,它将被拉伸以适合容器。因此,它的任何部分都不会落在容器外,并且不需要显示水平滚动条。这就是为什么你的滚动条没有出现


这种行为是故意的

谢谢你的回复!恐怕情况就是这样。这样做是有道理的。但是,我在这些子面板中有用户控件,这些控件足够大,在调整窗口大小时,它们将被隐藏。那么,使用AutoScrollMinSize是否是解决此问题的最佳解决方法?如果这是您想要的行为,则不应停靠控件。相反,设置Anchor属性,如下面的回答所述:我还不确定如何通过使用锚来复制当前顶部固定面板的展开/折叠行为,但我会继续考虑这个问题。谢谢你的链接!