2010-11-18 22 views
9

Używam edycji Enterprize VB6. W jaki sposób można połączyć paski Vsc dla sąsiednich listboxów, aby je przewinąć, a następnie przesuwać w górę iw dół? Celem jest zachowanie informacji wyświetlanych na listach obok siebie. Próbowałem ustawić właściwość listindex z dwóch innych list równe pierwszej listindex za pomocą zdarzenia click. Działa po modzie, ale jest mniej niż idealnym rozwiązaniem. Kliknięcie elementu na pierwszej liście powoduje wyświetlenie listy dla pozostałych dwóch, ale nie są one połączone ani wyświetlane obok siebie. Zauważyłem zdarzenie przewijania, ale nie mogę znaleźć żadnego materiału na temat używania tego wydarzenia w żadnej z moich książek VB. Każda pomoc będzie doceniona.Łączenie pasków przewijania na sąsiednich listach razem

+0

Konceptualnie powinieneś być w stanie przypisać je do tego samego modelu danych, a gdy model zostanie zaktualizowany, oba zostaną zaktualizowane. Nie podając tego jako odpowiedzi, ponieważ nie odpowiada bezpośrednio na pytanie, które zadałeś. –

+0

Nie specyficzne dla vb6, ale na wypadek, gdyby ktoś przyszedł przez ten wątek szukający rozwiązania .NET, http://social.msdn.microsoft.com/Forums/en/Vsexpressvcs/thread/46d8cba4-1266-4f39-a27b-5e86a4cf3583 –

Odpowiedz

4

Zajmij scroll event dla listbox. Spowoduje to uruchomienie się po przewinięciu listbox.

W module obsługi zdarzeń ustaw dla innych listbox wartość TopIndex property równą TopIndex przewijanej listy.

Znalazłem ten kod dla 2 listboxów na newsgroup post. Zmienna na poziomie modułu służy do zapobiegania rekursji: ustawienie TopIndex z kodu może ponownie uruchomić zdarzenie przewijania.

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

Dziękuję MarkJ! Wprowadziłem kod, zmieniłem nazwy listbox na moje i uruchomiłem. Działa jak marzenie! – user512163

Powiązane problemy