2017-05-08 1 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 
관련 문제