|
HOME WORKSHOPS BEFEHLSREFERENZ API-REFERENZ FAQ FORUM DOWNLOAD TOOLBESPRECHUNG BÜCHERECKE MARKETPLACE GRAFIK & DESIGN VB-SEITEN
[1015 User online] |
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 17.872 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv 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. |
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. Tipp des Monats Michael Hoffmann Tabellenblätter einblenden, ausblenden, unsichtbar VBA-Code, mit dem sich Tabellenblätter komfortable ein- und ausblenden lassen Access-Tools Vol.1 ![]() Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
|||||||||||||||
|
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. |
|||||||||||||||||


LINQ to ListView


