我只想在由于需要滚动而出现Panel的垂直ScrollBar时在某个面上调整Panel中的某个Control。
Panel.Resize或Panel.SizeChanged并不是我想要的,因为只要Panel的大小发生变化就会调用它,而不是由于Panel获得ScrollBar宽度而更改Panel大小内部时的精确点。
答案 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>