Связывание полос прокрутки в смежных списках вместе - PullRequest
10 голосов
/ 18 ноября 2010

Я использую VB6 Enterprize Edition. Как можно связать полосы прокрутки для соседних списков так, чтобы при прокрутке двух других тоже сдвигались вверх и вниз? Цель состоит в том, чтобы информация отображалась в списках рядом. Я попытался установить свойство listindex двух других списков равным первому listindex, используя событие click. Это работает по моде, но это далеко не идеальное решение. Если один щелкнет по элементу в первом списке, индекс индекса для двух других появится на экране, но они не связаны или не отображаются рядом. Я заметил событие прокрутки, но не могу найти никаких материалов об использовании этого события ни в одной из моих книг на VB. Любая помощь будет оценена.

1 Ответ

5 голосов
/ 18 ноября 2010

Обрабатывать событие прокрутки для списков. Это будет срабатывать всякий раз, когда список прокручивается.

В обработчике событий установите свойство TopIndex для остальных списков, равное TopIndex прокручиваемого списка.

Я нашел этот код для 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...