2017-05-08 33 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

'Controls'はすでにフォームモジュールコードの現在の名前空間に入っているので、' Me'はここではあまり役に立ちません。私はなぜこのようなことをしている人々がなぜそんなに頻繁に見えるのか分かりません。それを使うなら '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 
関連する問題