在vb6中滚动嵌入式框架

scroll embedded frames in 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

我检查了Me中的内容,所以Me包含了表格,因此移动了外框。但我不知道如何获得内部框架。有没有办法获取控件包含的元素,或者我应该以不同的方式获取控件?

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