Mic*_*ael 3 c# scroll resize winforms
我有一种情况,当我Form水平缩小时,水平和垂直ScrollBar都会出现.我创建了一个新的WinForms项目来复制行为,这里是我使用的设置.
TabControl到Form,设置Dock为FillTableLayoutPanel到TabPageDock为Fill,使用一行和一列,设置AutoScroll为"true"AutoSizeLabel到TableLayoutPanel,其文本设置为东西长Form水平收缩ScrollBar都会出现这不是一个主要问题,但感觉有点破碎,一段时间后看起来很烦人.我觉得有些东西没有正确调整大小.我的猜测是水平Scrollbar出现,触发了TableLayoutPanels ScrollBars而不是缩小TableLayoutPanel以适应新的垂直空间.
我已经尝试使用标签页的AutoScroll设置true,并得到了相同的结果.
任何见解将不胜感激.
编辑:
我测试了相同的设置只是一个Panel,Dock设置Fill,AutoSize并设置为GrowAndShrink,AutoScroll上.相同的步骤触发水平,但不垂直ScrollBar.
你的猜测是正确的.只要客户区没有足够的空间来显示所有控件,就会出现垂直或水平甚至两者的滚动条.
要避免这种情况,请使用SystemInformation获取滚动条信息并为控件添加额外的填充.例如,要隐藏水平条,只需执行以下操作:
var vertScrollWidth = SystemInformation.VerticalScrollBarWidth;
tableLayoutPanel.Padding = new Padding(0, 0, vertScrollWidth, 0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2280 次 |
| 最近记录: |