2010-11-18 4 views
9

VB6 Enterprize 버전을 사용합니다. 인접한 목록 상자에 대해 vscroll 막대를 연결하면 어떻게 될까요? 하나가 스크롤되면 두 개의 다른 위아래가 위아래로 움직입니다. 목표는 정보를 목록에 나란히 표시하는 것입니다. 두 개의 다른 목록의 listindex 속성을 click 이벤트를 사용하는 첫 번째 listindex와 동일하게 설정하려고했습니다. 패션 후에도 작동하지만 이상적인 솔루션은 아닙니다. 첫 번째 목록의 항목을 클릭하면 다른 두 항목의 목록 색인이 화면에 나타나지만 실제로는 링크되거나 나란히 표시되지 않습니다. 스크롤 이벤트를 발견했지만 내 VB 서적에서이 이벤트를 사용하여 어떤 성서도 찾을 수 없습니다. 도움이 될 것입니다.인접한 목록 상자에 스크롤 막대를 함께 연결

+0

개념적으로 모델을 동일한 데이터 모델에 할당 할 수 있어야하며 모델이 업데이트되면 둘 다 업데이트됩니다. 당신이 물어 본 질문에 직접 대답하지 않기 때문에 이것을 대답으로주지 마십시오. –

+0

vb6과 관련이 없지만 누군가 .NET 솔루션을 찾는이 스레드에서 제공되는 경우를 대비하여 http://social.msdn.microsoft.com/Forums/en/Vsexpressvcs/thread/46d8cba4-1266-4f39-a27b-5e86a4cf3583 –

답변

4

목록 상자의 경우 scroll event을 처리하십시오. 목록 상자가 스크롤 될 때마다 실행됩니다.

이벤트 처리기에서 스크롤 된 목록 상자의 TopIndex와 같은 다른 목록 상자에 대해서는 TopIndex property을 설정하십시오.

이 코드는 newsgroup post에있는 2 개의 목록 상자에서 발견되었습니다. 재귀를 막기 위해 모듈 수준의 변수가 사용됩니다. 코드에서 TopIndex를 설정하면 Scroll 이벤트가 다시 발생합니다.

Dim m_NoScroll As Boolean ''module-level flag var 

Private Sub List1_Scroll() 
    If Not m_NoScroll Then 
     m_NoScroll = True 
     List2.TopIndex = List1.TopIndex 
     m_NoScroll = False 
    End If 
End Sub 

Private Sub List2_Scroll() 
    If Not m_NoScroll Then 
     m_NoScroll = True 
     List1.TopIndex = List2.TopIndex 
     m_NoScroll = False 
    End If 
End Sub 
+0

MarkJ 감사합니다! 코드를 입력하고 목록 상자 이름을 내 이름으로 변경하고 실행했습니다. 매력처럼 작동합니다! – user512163

관련 문제