Rubrik: Controls · ListView | VB-Versionen: VB5, VB6 | 22.11.07 |
Angekreuzte ListView-Einträge löschen Dieser Tipp zeigt, wie sich alle im ListView angekreuzten Einträge aus der Liste löschen lassen | ||
Autor: Dieter Otter | Bewertung: | Views: 18.953 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Heute möchten wir Ihnen zeigen, wie sich alle im ListView angekreuzten Einträge löschen lassen, wenn man das ListView mit CheckBoxen verwendet.
Platzieren Sie auf die Form ein ListView-Control, sowie ein CommandButton und fügen folgenden Code ein:
Private Sub Form_Load() Dim i As Long With ListView1 ' Spalte erstellen .ColumnHeaders.Add ' Eigenschaften festlegen .View = lvwReport .FullRowSelect = True .Checkboxes = True ' ein paar Test-Einträge hinzufügen For i = 1 To 100 With .ListItems.Add(, , "Eintrag " & CStr(i)) .Checked = False End With Next i End With End Sub
Private Sub Command1_Click() Dim i As Long ' alle angekreuzten Einträge löschen With ListView1.ListItems ' mit dem 1. Eintrag beginnen i = 1 ' Schleife ausführen, solange nicht die Anzahl ' der Gesamteinträge erreicht While i <= .Count If .Item(i).Checked Then ' Eintrag löschen ' Die "Laufvariable" i darf in diesem Fall ' anschließend nicht erhöht werden! .Remove i Else ' Laufvariable nur hochzählen, wenn Eintrag ' NICHT ausgewählt ist i = i + 1 End If Wend End With End Sub
05.12.07: Ergänzung von Rolf Wahlbrinck
Die ListView-Einträge lassen sich schneller löschen, wenn man die Liste von "hinten" nach "vorne" durchläuft:
Dim i As Long ' alle angekreuzten Einträge löschen With ListView1.ListItems For i = .Count To 1 Step -1 If .Item(i).Checked Then ' Eintrag löschen .Remove i End If Next i End With