Rubrik: Controls · ListBox | VB-Versionen: VB4, VB5, VB6 | 14.08.02 |
ListBox-Einträge verschieben Vier nützliche Funktionen zum Verschieben eines ListBox-Eintrags via VB-Code. | ||
Autor: Dieter Otter | Bewertung: | Views: 19.024 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Der nachfolgende Code zeigt, wie sich der aktuell selektierte Eintrag innerhalb eines ListBox-Controls verschieben lässt:
- ganz nach oben
- eins nach oben
- eins nach unten
- ganz nach unten
Der Eintrag selbst bleibt nach "der Verschiebung" weiterhin markiert, so dass man z.B. durch mehrfaches Klicken auf einen Button den aktuellen Eintrag erneut nach oben/unten verschieben kann.
Erstellen Sie ein neues Projekt und plazieren folgende Controls auf die Form:
- ListBox (List1)
- CommandButton (cmdFirst)
- CommandButton (cmdPrev)
- CommandButton (cmdNext)
- CommandButton (cmdLast)
Fügen Sie nachfolgenden Code in den Codeteil der Form ein und starten anschließend das Beispielprojekt, um die "Verschiebe"-Funktionen zu testen.
Option Explicit Private Sub Form_Load() ' ListBox füllen Dim i As Integer For i = 1 To 100 List1.AddItem "Eintrag " & CStr(i) Next i ' CommandButtons beschriften cmdFirst.Caption = "|<" cmdPrev.Caption = "<" cmdNext.Caption = ">" cmdLast.Caption = ">|" End Sub
Eintrag ganz nach oben schieben
Private Sub cmdFirst_Click() ' aktuellen Eintrag ganz nach oben schieben Dim Index As Integer Dim sTemp As String With List1 If .ListIndex <> 0 Then sTemp = .List(.ListIndex) .RemoveItem .ListIndex .AddItem sTemp, 0 .ListIndex = 0 End If End With End Sub
Eintrag um eine Position nach oben schieben
Private Sub cmdPrev_Click() ' aktuellen Eintrag eins nach oben schieben Dim Index As Integer Dim sTemp As String With List1 If .ListIndex > 0 Then sTemp = .List(.ListIndex) .List(.ListIndex) = .List(.ListIndex - 1) .List(.ListIndex - 1) = sTemp .ListIndex = .ListIndex - 1 End If End With End Sub
Eintrag um eine Position nach unten schieben
Private Sub cmdNext_Click() ' aktuellen Eintrag eins nach unten schieben Dim Index As Integer Dim sTemp As String With List1 If .ListIndex < .ListCount - 1 Then sTemp = .List(.ListIndex) .List(.ListIndex) = .List(.ListIndex + 1) .List(.ListIndex + 1) = sTemp .ListIndex = .ListIndex + 1 End If End With End Sub
Eintrag ganz nach unten schieben
Private Sub cmdLast_Click() ' aktuellen Eintrag ganz nach unten schieben Dim Index As Integer Dim sTemp As String With List1 If .ListIndex <> .ListCount - 1 Then sTemp = .List(.ListIndex) .RemoveItem .ListIndex .AddItem sTemp, .ListCount .ListIndex = .ListCount - 1 End If End With End Sub