2017-05-08 60 views
1

我試圖創建一個滾動區域。我通過創建一個框架來完成這個工作,其中有另一個框架和一個滾動條。滾動條應該上下移動內部框架。在vb6中滾動嵌入的幀

但是,當使用滾動條時,內框不會被滾動條移動,但外框會在窗體上移動。

滾動我用下面的代碼:

Private Sub scrollFrame() 
Dim ctl As Control 
Dim myFrame As Frame 

For Each ctl In Me.Controls 

    If (TypeOf ctl Is Frame) Then 
    ctl.Top = ctl.Top + oldPos - VScroll1.Value 
    End If 

Next 

oldPos = VScroll1.Value 
End Sub 

我已經查了一下是,所以包含形式及其所用outher框架移動。但我不知道如何獲得內在的框架。有沒有辦法獲得控件所包含的元素,還是應該以不同的方式獲取控件?

+1

'Me'在這裏沒有多大幫助,因爲'Controls'已經在Form模塊代碼的當前命名空間中。我不確定爲什麼你會看到人們經常這樣做。如果你使用它,爲什麼不使用'Me.VScroll1'和'Me.EverythingUnderTheSun'? – Bob77

回答

2

Me.Controls包含窗體上的所有控件,即使它們包含在外部框架中。但是,每個控件都有一個Container屬性。你可以檢查這個來確定外框包含的所有元素。

For Each ctl In Me.Controls 
     If (TypeOf ctl Is Frame And ctl.Container.Name = "Frame1") Then 
     ctl.Top = ctl.Top + oldPos - VScroll1.Value 
     End If 
    Next