2011-04-06 67 views
1

這裏的情況:C#Winforms - 什麼時候控件的滾動條被初始化?

我想從devexpress控件VerticalScroll控制flowLayoutControl的滾動條。

現在 - flowLayoutControl與自動滾屏=真。我添加了一個新的verticalscroll控件並將其停靠在Right上。所以現在,Devexpress垂直滾動控件就位於FlowLayout滾動條的頂部。

此外,當下面的代碼運行FlowLayoutPanel的垂直滾動絲毫不掩飾:

spotWinFlowLayout1.VerticalScroll.Visible = false 

我已經安裝了以下事件處理程序:除了在形式的負載有當

private void spotWinFlowLayout1_Resize(object sender, EventArgs e) 
    { 
     SetupVerticalScrollBar(); 
    }   

    private void SetupVerticalScrollBar() 
    { 
     vScrollBar1.Minimum = spotWinFlowLayout1.VerticalScroll.Minimum; 
     vScrollBar1.Maximum = spotWinFlowLayout1.VerticalScroll.Maximum; 
     vScrollBar1.LargeChange = spotWinFlowLayout1.VerticalScroll.LargeChange; 
     vScrollBar1.SmallChange = spotWinFlowLayout1.VerticalScroll.SmallChange;    
    } 

    private void vScrollBar1_Scroll(object sender, ScrollEventArgs e) 
    { 
     spotWinFlowLayout1.VerticalScroll.Value = e.NewValue; 
    } 

一切正常已經在flowLayoutControl滾動條, spotWinFlowLayout1.VerticalScroll.XXX性質尚未設定。所以這兩個滾動條都不同步。但是,只要我調整窗體大小都獲得同步。

那麼什麼時候FlowLayoutPanel的滾動條被初始化?

回答

1

那麼當FlowLayoutPanel的滾動條被初始化了嗎?

這聽起來像一個smartalec回答:「當控制繪製或放置形式上」,這是什麼原因,當你調整它們在同步形式的大小(他們正在制定再次)

解決的辦法是手動自己添加滾動條。

+0

最初設置控件的visible = false,然後在formLoad爲true解決問題。謝謝你的提示。 – 2011-04-06 14:32:41

+0

@Aseem - 我很樂意幫助,實際上我被分配到幾年前在課堂上做類似的事情。它涉及在有足夠的內容滾動時解鎖滾動條。 – 2011-04-06 15:24:22