Mit dem Tipp Mit den heutigen Tipp möchten wir Ihnen eine Erweiterung vorstellen, die den Inhalt des ListViews und zusätzlich die ColumnHeader Informationen in eine XML Datei speichert und auch wieder auslesen kann. Die nachfolgende Klasse erbt von ListView und wird dabei um die Load und Save Methode erweitert. Die neuen Methoden nutzen dabei die LINQ to XML Technik. Doch nicht nur die Daten werden als XML gespeichert, sondern zusätzlich noch die ColumnHeader Informationen, so dass ein ListView komplett wiederhergestellt werden kann. Nachfolgend die Klasse ListViewEx: Imports System.Windows.Forms.ListViewItem Public Class ListViewEx Inherits Windows.Forms.ListView Public Sub Save(ByVal FileName As String) Try Dim xDoc As New XDocument() With xDoc .Declaration = New XDeclaration("1.0", "", "") .Add(New XElement("ListView")) ' ColumnHeader in das XML-Dokument einfügen .Root.Add(From col As ColumnHeader In Me.Columns _ Select <ColumnHeader> <Text><%= col.Text %></Text> <Name><%= col.Name %></Name> <DisplayIndex><%= col.DisplayIndex %></DisplayIndex> <Width><%= col.Width %></Width> </ColumnHeader>) ' Items in das XML-Dokument einfügen .Root.Add(From Item As ListViewItem In Me.Items _ Select <Item> <%= From SubItem As ListViewSubItem In Item.SubItems _ Select <Text><%= SubItem.Text %></Text> %> </Item>) ' XML-Datei speichern .Save(FileName) End With Catch ex As Exception Throw ex End Try End Sub Public Sub Load(ByVal FileName As String) Try Me.Items.Clear() Me.Columns.Clear() Me.BeginUpdate() ' XML-Datei einlesen Dim xListView = XElement.Load(FileName) ' ColumnHeader aus XML erstellen Me.Columns.AddRange((From col In xListView.Descendants("ColumnHeader") _ Select New ColumnHeader With { _ .Text = col.Element("Text"), _ .Name = col.Element("Name"), _ .DisplayIndex = CInt(col.Element("DisplayIndex")), _ .Width = CInt(col.Element("Width"))}).ToArray) ' Items aus XML einlesen und dem ListView hinzufügen For Each Item In xListView.Descendants("Item") Me.Items.Add(New ListViewItem(( _ From SubItem In Item.Descendants("Text") _ Select SubItem.Value).ToArray)) Next Catch ex As Exception Throw ex Finally Me.EndUpdate() End Try End Sub End Class Aufrufbeispiel zum Speichern des ListViews Me.ListViewEx1.Save("D:\ListView.xml") Aufrufbeispiel zum Laden des ListViews Me.ListViewEx1.Load("D:\ListView.xml") Dieser Tipp wurde bereits 16.941 mal aufgerufen.
Anzeige
![]() ![]() ![]() 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 ![]() Dieter Otter Beliebige Zeichen am Anfang und Ende eines Strings entfernen Mit der Trim-Funktion lassen sich nicht nur Leerzeichen, sondern bei Bedarf auch beliebige Zeichen entfernen. sevZIP40 Pro DLL ![]() Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. |
||||||||||||||||
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. |