Das ListView-Control - ein Steuerelement, welches aufgrund seiner vielfältigen Einsatzmöglichkeit sehr häufig in den eigenen Projekten verwendet wird - bietet so einiges, doch leider fehlen zwei sehr wichtige Funktionen:
Speichern des ListView-Inhalts in eine Datendatei ''' <summary> ''' Speichert den Inhalt des ListViews in eine Datei.- ''' </summary> ''' <param name="lvw">ListView-Control</param> ''' <param name="DataFile">Dateiname der Datendatei</param> ''' <returns>True, bei Erfolg, andernfalls False.</returns> Public Function lvw_SaveData(ByVal lvw As ListView, ByVal DataFile As String) As Boolean Dim oStream As IO.StreamWriter = Nothing Dim bResult As Boolean = False Try ' Anzahl ListView-Spalten Dim lvwCols As Integer = lvw.Columns.Count Dim sData As New System.Text.StringBuilder With lvw.Items ' ListView durchlaufen und zeilenweise zusammensetzn For i As Integer = 0 To .Count - 1 sData.Append(.Item(i).Text) For u As Integer = 1 To lvwCols - 1 sData.Append(vbTab & .Item(i).SubItems(u).Text) Next sData.AppendLine() Next End With ' Stream-Objekt zum Speichern erstellen ' und den zuvor zusammengestellen String speichern oStream = New IO.StreamWriter(DataFile, False, System.Text.Encoding.Default) oStream.Write(sData.ToString) oStream.Flush() bResult = True Catch ex As Exception Finally ' Stream-Objekt schließen If Not IsNothing(oStream) Then oStream.Close() End Try Return (bResult) End Function Einlesen und Anzeigen der gespeicherten Daten ''' <summary> ''' Füllt das ListView mit den Datenzeilen der angegebenen Datei. ''' </summary> ''' <param name="lvw">ListView-Control</param> ''' <param name="DataFile">Dateiname der Datendatei</param> ''' <returns>True, bei Erfolg, andernfalls False.</returns> Public Function lvw_ReadData(ByVal lvw As ListView, ByVal DataFile As String) As Boolean Return lvw_ReadData(lvw, DataFile, True) End Function ''' <summary> ''' Füllt das ListView mit den Datenzeilen der angegebenen Datei. ''' </summary> ''' <param name="lvw">ListView-Control</param> ''' <param name="DataFile">Dateiname der Datendatei</param> ''' <param name="AppendData">True, wenn die Daten angehängt werden sollen. ''' False, wenn das ListView vorher gelöscht werden soll.</param> ''' <returns>True, bei Erfolg, andernfalls False.</returns> Public Function lvw_ReadData(ByVal lvw As ListView, ByVal DataFile As String, _ ByVal AppendData As Boolean) As Boolean Dim bResult As Boolean = False ' Existiert die Datei? If IO.File.Exists(DataFile) Then ' Datei vollständige einlesen und in einzelne Zeilen aufsplitten Dim sLines() As String = My.Computer.FileSystem.ReadAllText( _ DataFile, System.Text.Encoding.Default).Split(Environment.NewLine.ToCharArray) ' Anzahl ListView-Spalten Dim lvwCols As Integer = lvw.Columns.Count lvw.BeginUpdate() ' ggf. ListView löschen If Not AppendData Then lvw.Items.Clear() ' Jetzt die Datenzeilen in das ListView übertragen For i As Integer = 0 To sLines.Length - 1 If sLines(i).Length > 0 Then Dim sData() As String = sLines(i).Split(vbTab) ' Falls die Anzahl Datenspalten nicht mit der Anzahl Spalten ' im ListView übereinstimmen, -> Array "zurechtrücken" If sData.Length < lvwCols Then ReDim Preserve sData(lvwCols - 1) With lvw.Items.Add(sData(0)) For u As Integer = 1 To lvwCols - 1 .SubItems.Add(sData(u)) Next End With End If Next lvw.EndUpdate() bResult = True End If Return (bResult) End Function Dieser Tipp wurde bereits 20.572 mal aufgerufen.
Anzeige
![]() ![]() ![]() (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 ![]() ![]() Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats Neu! sevPopUp 2.0 ![]() Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |