2014-01-27 72 views
1

我只是想在面板的垂直ScrollBar由於需要滾動而出現的某個點上調整面板中的某個控件。如何在Panel上出現ScrollBar時發現? VB.Net

Panel.Resize或Panel.SizeChanged不是我想要的,因爲只要面板的大小被更改而不是精確點,當面板大小的內部由於Panel獲得ScrollBar寬度。

+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 

請注意事件將多次觸發。如果你做了任何重新排列控件以使滾動條再次不可見的情況,那麼請注意,你會引發大量的高度可見的閃爍。

由於用戶可以對控件進行大小調整,所以只有您的代碼可以做到這一點,更好的選擇是主動防止滾動條顯示在第一位。

相關問題