gpt4 book ai didi

c# - 当只有水平滚动条应该出现时,垂直和水平滚动条出现

转载 作者:行者123 更新时间:2023-11-30 14:29:43 26 4
gpt4 key购买 nike

我有一种情况,当我水平收缩我的 Form 时,水平和垂直的 ScrollBar 都会出现。我创建了一个新的 WinForms 项目来复制该行为,这是我使用的设置。

  1. Form中添加一个TabControl,将Dock设置为Fill
  2. TableLayoutPanel添加到TabPage
  3. 设置DockFill,使用一行一列,设置AutoScroll为`true
  4. 将行和列的大小设置为AutoSize
  5. TableLayoutPanel 添加一个Label,将其文本设置为较长的​​内容
  6. 运行应用,水平收缩Form
  7. 注意水平和垂直的 ScrollBar 都出现了

这不是什么大问题,但感觉有点破损,过一会儿再看会很烦人。我觉得有些东西没有正确调整大小。我的猜测是水平 Scrollbar 出现了,它触发了 TableLayoutPanelScrollBars 而不是将 TableLayoutPanel 缩小到适应新的垂直空间。

我也尝试过将标签页的 AutoScroll 设置为 true,并得到了相同的结果。

如有任何见解,我们将不胜感激。


编辑:

我测试了相同的设置,只用了一个 PanelDock 设置为 FillAutoSize 打开并设置到GrowAndShrinkAutoScroll上。相同的步骤触发水平的,但不是垂直的 ScrollBar

最佳答案

你的猜测是正确的。只要客户区没有足够的空间来显示所有控件,就会出现垂直或水平滚动条,甚至两者都会出现。

要避免这种情况,请使用 SystemInformation 获取滚动条信息并向您的控件添加额外的填充。例如,要隐藏单杠,只需这样做:

var vertScrollWidth = SystemInformation.VerticalScrollBarWidth;

tableLayoutPanel.Padding = new Padding(0, 0, vertScrollWidth, 0);

关于c# - 当只有水平滚动条应该出现时,垂直和水平滚动条出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25342096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com