更改滚动值时,滚动条不会更新

Eri*_*fer 8 .net scrollbar winforms

当设置VerticalScroll.ValuePanelAutoScroll设置为true,滚动位置相应地改变,但大拇指的位置没有.我是否需要以某种方式更新滚动条(Invalidate(true)在面板上不起作用)?有任何想法吗?

KMå*_*Mån 26

试着打电话 .PerformLayout();

  • 作品.非常感谢. (3认同)

小智 6

谢谢你的.PerformLayout()提示!

在我的情况下这还不够,我在表单Form.Shown事件处理程序中设置了VerticalScroll.Value ,由于某种原因,我必须DoEvents事先添加一条指令才能使滚动工作.

这是我的Shown事件处理程序:

Private Sub MyForm_Shown(sender As System.Object, e As System.EventArgs) Handles Me.Shown
    System.Windows.Forms.Application.DoEvents()

    ScrollPanel.VerticalScroll.Value = ScrollPanel.VerticalScroll.Maximum
    ScrollPanel.PerformLayout()
End Sub
Run Code Online (Sandbox Code Playgroud)

ScrollPanel控件属于类型System.Windows.Forms.Panel.

如果没有该Application.DoEvents()行,则完全忽略垂直滚动值设置.

我认为这对其他人来说可能会派上用场.