【发布时间】:2015-09-24 02:28:00
【问题描述】:
在我的情况下,我很难让垂直和水平滚动条都按预期运行。有问题的页面有多个可以展开和折叠的部分(一次只能展开一个)。为了尝试演示我的页面布局,我将使用嵌套,并且可能会使用一个愚蠢的命名约定来尽可能清晰:
- uc父
- pnl 父级
- pnl1Title
- pnl1
- uc1
- pnl2Title
- PNL2
- uc2
- pnl3Title
- PNL3
- uc3-1
- uc3-2
- uc3-3
- pnl 父级
等等。现在,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 强制它显示和工作,但是面板的大小不同,这让人感觉更像是一种 hack,而不是一个正确的解决方案。
通过搜索,我发现很多以前的讨论都围绕 Windows 窗体和滚动条展开,但我没有找到足够具体的内容,我觉得我可以自信地确定我的应用程序的必要方向。我非常感谢您能分享的任何信息,这些信息将阐明滚动条无法按预期工作的原因以及如何解决。
谢谢!
【问题讨论】:
标签: c# .net winforms horizontal-scrolling