Ich brauchte häufig mal die Funktion, ganze Spalten und deren SubItems zu löschen (mit 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.
Man brauch lediglich den Index der zu löschenden Spalte.
Ich hoffe ich konnte dem einen oder anderen helfen!
VB.NET-Quellcode
- Private Sub DeleteColumn(ByVal index As Integer, ByVal LiVw As ListView)
- Dim LV As New ListView
- For Each ch As ColumnHeader In LiVw.Columns
- If ch.Index <> index Then
- LV.Columns.Add(ch.Text)
- End If
- Next
- For Each Item As ListViewItem In LiVw.Items
- With LV.Items.Add(LiVw.Items(Item.Index).Text)
- For n = 1 To LiVw.Columns.Count
- If index <> n Then
- Try
- .SubItems.Add(LiVw.Items(Item.Index).SubItems(n).Text)
- Catch ex As Exception
- End Try
- End If
- Next
- End With
- Next
- LiVw.Clear()
- For Each c As ColumnHeader In LV.Columns
- LiVw.Columns.Add(c.Text)
- Next
- Dim Items(LV.Items.Count - 1) As ListViewItem
- For i As Integer = 0 To LV.Items.Count - 1
- Items(i) = CType(LV.Items(i).Clone, ListViewItem)
- Next
- LiVw.Items.AddRange(Items)
- End Sub
Man brauch lediglich den Index der zu löschenden Spalte.
Ich hoffe ich konnte dem einen oder anderen helfen!