如何在调整窗口或容器大小时修复滚动条?

时间:2011-08-17 06:48:14

标签: c# winforms xna scroll scrollbar

目前在我的应用程序中,我使用HScrollBar和VScrollBar在大图像中进行平移。显示的图像部分基于滚动条的Value属性。但是,在调整SplitContainer的大小或调整窗体窗口大小时,滚动条的值不会自动更新,并且可能会在屏幕外呈现某些内容。

此时我注意到,如果你单击滚动条的箭头,它会神奇地修复滚动条。我想知道是否有任何方法可以模拟单击滚动条在Form_Resize和SplitContainer_Resize事件处理程序中执行此操作,但我找不到任何内容。

必须在所有调整大小事件中手动调整滚动条的值是缓慢,丑陋,并且不能很好地工作。我非常希望滚动条能够在窗口调整时自动修复,就像点击箭头时一样,但我不确定如何。

2 个答案:

答案 0 :(得分:2)

尝试在表单的resize事件处理程序中调用滚动条的Invalidate()方法:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.invalidate.aspx

这会导致在调整表单大小后正确重绘。

答案 1 :(得分:0)

使用类似的东西:

HScrollBarObject.SetStyle(ControlStyles.ResizeRedraw, true);