vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Serialisierung II 
Autor: Schü
Datum: 09.09.08 13:56

Hallo.

Ich habe immer noch ein Problem beim Serialisieren eines Listview.

Es ist mir nicht möglich die ColumnHeader zu serialisieren. Fehlermeldung: System.... ColumnHeader ist als nicht serialisierbar gekennzeichnet.

folgenden Test-Code habe ich ausgeführt:


Public Class Form1
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        With ListView1
            .View = View.Details
            .GridLines = True
            .Columns.Add("Spalte1")
            .Columns.Add("Spalte2")
            .Columns.Add("Spalte3")
 
            For i = 0 To .Columns.Count - 1
                .Columns(i).Width = -2
            Next
        End With
 
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        Save()
    End Sub
 
    Friend Sub SaveTo(ByRef fs As IO.FileStream)
        'TODO: SaveTo
        Dim Formatter As New _
          Runtime.Serialization.Formatters.Binary.BinaryFormatter
        Try
            Dim arr(ListView1.Columns.Count - 1) As ColumnHeader
            For i As Integer = 0 To ListView1.Columns.Count - 1
                arr(i) = ListView1.Columns(i)
            Next i
            Formatter.Serialize(fs, arr)
        Catch ex As Exception
            Throw ex
        End Try
    End Sub
 
    Friend Function LoadFrom(ByRef fs As IO.FileStream) As ColumnHeader()
        'TODO: LoadFrom
        Dim Formatter As New _
          Runtime.Serialization.Formatters.Binary.BinaryFormatter
        Try
            Dim arr As ColumnHeader()
            arr = DirectCast(Formatter.Deserialize(fs), ColumnHeader())
            Return arr
        Catch ex As Exception
            Throw ex
            Return Nothing
        End Try
    End Function
 
    Public Sub Save()
        Dim dataPath As String = IO.Path.Combine(Application.StartupPath, _
          "accounts.dat")
        Dim fs As New IO.FileStream(dataPath, IO.FileMode.OpenOrCreate)
 
        SaveTo(fs)
 
        fs.Close()
    End Sub
 
    Public Sub Load()
        Dim dataPath As String = IO.Path.Combine(Application.StartupPath, _
          "accounts.dat")
        Dim fs As New IO.FileStream(dataPath, IO.FileMode.OpenOrCreate)
        Dim col As ColumnHeader()
        Dim X As ColumnHeader
 
        col = LoadFrom(fs)
        ListView1.Columns.Clear()
        Me.Refresh()
 
        For i As Integer = 0 To col.Length - 1
            ListView1.Columns.Add(col(i))
        Next i
 
        fs.Close()
        Me.Refresh()
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button2.Click
        Load()
    End Sub
End Class
Eigentlich sollten einfach nur die ColumnHeader gspeichert und wieder eingelesen werden.
Wo ist der Fehler?

Schü
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Serialisierung II895Schü09.09.08 13:56
Re: Serialisierung II573icetea12309.09.08 14:06
Re: Serialisierung II561Schü09.09.08 14:08
Re: Serialisierung II561keco09.09.08 14:11
Re: Serialisierung II585Schü09.09.08 14:13

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-2024 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