vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Serialisierung 
Autor: keco
Datum: 04.09.08 00:24

Du erstellst eine Klasse mit den nötigen Eigenschaften (das Beispiel hat nur die ListViewItems; ColumnHeader und ListViewGroup musst du noch selbst hinzufügen):
<System.Serializable()> _
Public Class MyListViewSources
   Private pItems As ListViewItem()
 
   Public Sub New(ByVal Items As ListViewItem())
      pItems = Items
   End Sub
 
   Public Property Items() As ListViewItem()
      Get
         Return Me.pItems
      End Get
      Set(ByVal value As ListViewItem())
         Me.pItems = value
      End Set
   End Property
 
   Public Sub Save()
      Dim fs As New IO.FileStream(Application.UserAppDataPath & "\lvdata.dat", _
        IO.FileMode.Create)
      Dim formatter As New _
      System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
 
      Try
         formatter.Serialize(fs, Me)
      Catch ex As Exception
         MsgBox(ex.Message)
      Finally
         fs.Close()
      End Try
   End Sub
 
   Public Shared Function Load() As MyListViewSources
      Dim fs As New IO.FileStream(Application.UserAppDataPath & "\lvdata.dat", _
        IO.FileMode.Open)
      Dim formatter As New _
      System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
 
      Try
         Return DirectCast(formatter.Deserialize(fs), MyListViewSources)
      Catch ex As Exception
         MsgBox(ex.Message)
         Return Nothing
      Finally
         fs.Close()
      End Try
   End Function
End Class
Die Klasse muss als Serializable eingestellt werden und schon steht dem Speichern und Laden nichts mehr im Wege.

Speichern und Laden kannst du wie folgt:
Public Class Form2
   Private lvSources As MyListViewSources
 
   ' Speichern
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
     System.EventArgs) Handles Button1.Click
      ' Array von ListViewItem erstellen
      Dim arr(ListView1.Items.Count - 1) As ListViewItem
      ' Items aus dem ListView in das Array kopieren
      ListView1.Items.CopyTo(arr, 0)
 
      ' Neue Instanz erstellen und Array übergeben
      lvSources = New MyListViewSources(arr)
      ' Speichern
      lvSources.Save()
   End Sub
 
   ' Laden
   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
     System.EventArgs) Handles Button2.Click
      ' Laden
      lvSources = MyListViewSources.Load()
 
      ' Jedes Item in das ListView hinzufügen, ggf. ListView1.Items.Clear() 
      ' aufrufen
      For Each item As ListViewItem In lvSources.Items
         ListView1.Items.Add(item)
      Next
   End Sub
End Class
Das sollte dann alles so funktionieren.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Serialisierung1.371Schü03.09.08 19:04
Re: Serialisierung897icetea12303.09.08 19:41
Re: Serialisierung876Schü03.09.08 19:58
Re: Serialisierung848keco03.09.08 20:14
Re: Serialisierung861Schü03.09.08 21:03
Re: Serialisierung909keco04.09.08 00:24
Re: Serialisierung887Schü04.09.08 08:44
Re: Serialisierung876Schü04.09.08 16:58
Re: Serialisierung852icetea12304.09.08 18:41
Re: Serialisierung846Schü04.09.08 19:42
Re: Serialisierung833keco05.09.08 18:59
Re: Serialisierung861Schü03.09.08 22:20

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel