2010-11-18 10 views
9

Uso la versione di enterprize VB6. Come si fa a collegare le barre vscroll per le caselle di riepilogo adiacenti in modo che, se si scorre uno, le altre due scorrono anche in alto e in basso? L'obiettivo è di mantenere affiancate le informazioni visualizzate negli elenchi. Ho provato a impostare la proprietà listindex degli altri due elenchi uguale al listindex del primo utilizzando l'evento click. Funziona dopo una moda, ma è una soluzione tutt'altro che ideale. Se si fa clic su un elemento nel primo elenco, gli elenchi degli altri due appaiono sullo schermo, ma non sono realmente collegati o visualizzati fianco a fianco. Ho notato un evento di scorrimento ma non riesco a trovare alcun materiale su come utilizzare questo evento in nessuno dei miei libri VB. Qualsiasi aiuto sarebbe apprezzato.Collegamento di barre di scorrimento su elenchi di caselle adiacenti insieme

+0

Concettualmente, si dovrebbe essere in grado di entrambi assegnare lo stesso modello di dati, e quando gli aggiornamenti modello, essi saranno entrambi aggiornamento. Non dare questa risposta come risposta perché non risponde direttamente alla domanda che hai posto. –

+0

Non specifico per vb6, ma nel caso qualcuno venga da questo thread alla ricerca di una soluzione .NET, http://social.msdn.microsoft.com/Forums/en/Vsexpressvcs/thread/46d8cba4-1266-4f39-a27b-5e86a4cf3583 –

risposta

4

Gestire il scroll event per le liste. Questo sparerà ogni volta che la casella di riepilogo viene scorsa.

Nel gestore eventi, impostare TopIndex property per gli altri elenchi di caselle uguale a TopIndex della casella di riepilogo a scorrimento.

Ho trovato questo codice per 2 listbox su un newsgroup post. Una variabile a livello di modulo viene utilizzata per impedire la ricorsione: l'impostazione di TopIndex dal codice potrebbe generare nuovamente l'evento di scorrimento.

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

Grazie MarkJ! Inserito il codice, cambiato i nomi delle liste e il mio e lo ha eseguito. Funziona come un fascino! – user512163

Problemi correlati