Rubrik: Controls · ListView | VB-Versionen: VB5, VB6 | 21.09.04 |
ListView autom. scrollen Wie man innerhalb des ListView-Controls autom. an eine bestimmte Position scrollt, das zeigen wir Ihnen in diesem Tipp. | ||
Autor: Dieter Otter | Bewertung: | Views: 17.070 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Beim Hinzufügen eines neuen Eintrags in das ListView-Control soll oftmals autom. ans Ende der Liste gescrollt werden. Wie das geht, zeigt nachfolgender "Einzeiler":
ListView1.ListItems(ListView1.ListItems.Count).EnsureVisible
Das Ganze lässt sich - in eine kleine Prozedur verpackt - auch universell für beliebige Positionen umsetzen:
' ListView autom. scrollen Public Sub ListView_Scroll(oLVW As Object, _ Optional ByVal nPos As Long = 0, _ Optional bAutoSelect As Boolean = False) With oLVW If nPos < 1 Or nPos > .ListItems.Count Then ' Ans Ende scrollen nPos = .ListItems.Count End If ' zu bestimmter Position scrollen .ListItems(nPos).EnsureVisible ' ggf. Eintrag selektieren If bAutoSelect Then Set .SelectedItem = .ListItems(nPos) End If End With End Sub
Im ersten Parameter muss das ListView-Control übergeben werden. Der zweite Parameter legt die Position fest, bis zu der gescrollt werden soll. Wird hier ein Wert < 1 angegeben, wird autom. ans Ende der Liste gescrollt. Der letzte Parameter gibt optional an, ob der Eintrag autom. selektiert werden soll.
Aufrufbeispiele:
' Ans Ende scrollen, ohne autom. Selektion ListView_Scroll ListView1, 0
' An den Anfang scrollen, mit autom. Selektion ListView1_Scroll ListView1, 1, True
' Zur Position 10 scrollen, ohne autom. Selektion ListView1_Scroll ListView1, 5