2017-05-16 12 views
1

컨트롤의 중첩 컨트롤에 액세스하는 방법은 무엇입니까?VB6의 특정 프레임에서 GUI 요소를 편집하는 방법

사용자 인터페이스에 서버 프레임이 있고 모든 프레임에 레이블, 버튼 등의 기타 서버 컨트롤이 있습니다. 프레임을 반복하고 특정 프레임의 하위 내용을 변경해야합니다 (예 : 레이블의 다른 텍스트 설정).

지금까지 프레임의 모든 컨트롤을 반복하고 루프 컨트롤 변수의 컨트롤이 변경이 필요한 프레임인지 확인합니다.

Dim cntrl As Control 
For Each cntrl In Controls 
    'Debug.Print cntrl.Name // here I get all controls on the form 
    If cntrl.Name = "Frame_Name" Then 
    If cntrl.Index = index Then 
     Debug.Print "true" ' here the caption of nested components should be changed 
    End If 
    End If 
Next 

이제 제어 변수에 프레임이 있지만 문제는 레이블의 캡션을 변경하기 위해 중첩 된 레이블에 액세스 할 수 없다는 것입니다. 내가 무엇을 할 수 있을지?

답변

2

각 컨트롤의 컨테이너 속성을 확인해야합니다. 다음 코드는 아이디어를 제공합니다.

Dim cntrl As Control 

For Each cntrl In Controls 
    If cntrl.Container.Name = "Frame_Name" Then 
     Debug.Print cntrl.Name & " is nested in the specified frame" 
    End If 
Next