ListView - alle SubItems einer Spalte löschen

    • VB.NET
    • .NET (FX) 4.5–4.8

      ListView - alle SubItems einer Spalte löschen

      Ich brauchte häufig mal die Funktion, ganze Spalten und deren SubItems zu löschen (mit

      VB.NET-Quellcode

      1. ListView1.Columns.Remove(...)
      kann man ja nur die Spaltenköpfe entfernen), deshalb ich mir hier einen kleinen Code zusammengeschrieben. Diesen würde ich gerne mit euch teilen, da ich denke, dass ich nicht der einzige bin, der diese Funktion braucht.

      VB.NET-Quellcode

      1. Private Sub DeleteColumn(ByVal index As Integer, ByVal LiVw As ListView)
      2. Dim LV As New ListView
      3. For Each ch As ColumnHeader In LiVw.Columns
      4. If ch.Index <> index Then
      5. LV.Columns.Add(ch.Text)
      6. End If
      7. Next
      8. For Each Item As ListViewItem In LiVw.Items
      9. With LV.Items.Add(LiVw.Items(Item.Index).Text)
      10. For n = 1 To LiVw.Columns.Count
      11. If index <> n Then
      12. Try
      13. .SubItems.Add(LiVw.Items(Item.Index).SubItems(n).Text)
      14. Catch ex As Exception
      15. End Try
      16. End If
      17. Next
      18. End With
      19. Next
      20. LiVw.Clear()
      21. For Each c As ColumnHeader In LV.Columns
      22. LiVw.Columns.Add(c.Text)
      23. Next
      24. Dim Items(LV.Items.Count - 1) As ListViewItem
      25. For i As Integer = 0 To LV.Items.Count - 1
      26. Items(i) = CType(LV.Items(i).Clone, ListViewItem)
      27. Next
      28. LiVw.Items.AddRange(Items)
      29. End Sub​


      Man brauch lediglich den Index der zu löschenden Spalte.

      Ich hoffe ich konnte dem einen oder anderen helfen! ;)