我的情况是,当我水平收缩Form
时,会出现水平和垂直ScrollBar
。我创建了一个新的WinForms项目来复制行为,这是我使用的设置。
TabControl
添加Form
,将Dock
设为Fill
TableLayoutPanel
添加到TabPage
Dock
设置为Fill
,使用一行一列,将AutoScroll
设置为“true AutoSize
Label
添加TableLayoutPanel
,将其文字设置为长Form
ScrollBar
出现这不是一个主要问题,但感觉有点破碎,经过一段时间后看起来很烦人。我觉得有些东西没有正确调整大小。我的猜测是显示水平Scrollbar
,触发TableLayoutPanel
ScrollBars
而不是缩小TableLayoutPanel
以适应新的垂直空间。
我已尝试使用标签页AutoScroll
设置为true
,并获得相同的结果。
非常感谢任何见解。
编辑:
我测试了相同的设置,只有Panel
,Dock
设置为Fill
,AutoSize
打开并设置为GrowAndShrink
,AutoScroll
上。相同的步骤会触发水平,但不会触发垂直ScrollBar
。
答案 0 :(得分:6)
你的猜测是正确的。只要客户区没有足够的空间来显示所有控件,就会出现垂直或水平甚至两者的滚动条。
要避免这种情况,请使用SystemInformation
获取滚动条信息并为控件添加额外的填充。例如,要隐藏水平条,只需执行以下操作:
var vertScrollWidth = SystemInformation.VerticalScrollBarWidth;
tableLayoutPanel.Padding = new Padding(0, 0, vertScrollWidth, 0);