如何在Panel上出现ScrollBar时注意到? VB.Net

时间:2014-01-27 08:37:05

标签: vb.net winforms visual-studio panel

我只想在由于需要滚动而出现Panel的垂直ScrollBar时在某个面上调整Panel中的某个Control。

Panel.Resize或Panel.SizeChanged并不是我想要的,因为只要Panel的大小发生变化就会调用它,而不是由于Panel获得ScrollBar宽度而更改Panel大小内部时的精确点。

1 个答案:

答案 0 :(得分:1)

将触发ClientSizeChanged事件。您可以使用以下代码检测滚动条是否可见:

Private Sub Panel1_ClientSizeChanged(sender As Object, e As EventArgs) Handles Panel1.ClientSizeChanged
    If Panel1.VerticalScroll.Visible Then
        '' etc...
    End If
End Sub

请注意该事件将多次触发。如果你做任何事情来重新排列控件以使滚动条再次不可见,那么要注意你会引发大量高度可见的闪烁。

由于用户通常没有任何东西可以用来调整控件的大小,只有你的代码可以做到这一点,更好的选择是主动防止滚动条显示在第一位。< / p>