copyright 1999 - 2014 by heinz prelle - hannover  - lenbachstraße 42 - www.visual-basic5.de | impressum
Beispiel: VB .Net BinaryFormatter ListBox Inhalt speichern und laden  4
'
Option Explicit On
Option Strict On

Imports System.IO

Public Class Form1

    Public ReadOnly Property Filename() As String
        Get
            Return String.Concat(My.Application.Info.DirectoryPath, "\", "test.txt")
        End Get
    End Property

    Private Sub Form1_FormClosing(ByVal sender As Object, _
                                  ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                                  Handles Me.FormClosing
        With Me
            If .ListBox1.Items.Count > 0 Then
                .SaveContent(.Filename, .ListBox1)
            End If
        End With
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
            Handles MyBase.Load
        With Me
            .CenterToScreen()
            .Text = "ListBox - Inhalt speichern - laden - 4"
            With Me.Button1
                .Text = "Eintrag hinzufuegen"
                With Me.TextBox1
                    .Text = "Testeintrag"
                End With
            End With
            .LoadContent(.Filename, .ListBox1)
        End With
    End Sub

    Private Sub LoadContent(ByVal Filename As String, ByVal lb As System.Windows.Forms.ListBox)
        Try
            If File.Exists(Filename) Then
                Using fs As FileStream = New FileStream(Filename, FileMode.Open, FileAccess.Read)
                    lb.Items.AddRange(DirectCast(New  _
                    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter().Deserialize(fs), _
                    Object()))
                End Using
            End If
        Catch ex As IOException
            MessageBox.Show(ex.Message(), "Info - IOException")
        Catch ex As Exception
            MessageBox.Show(ex.Message(), "Info - Exception")
        End Try
    End Sub

    Private Sub SaveContent(ByVal Filename As String, ByVal lb As System.Windows.Forms.ListBox)
        Try
            Using fs As FileStream = New FileStream(Filename, FileMode.Create)
                Dim List(lb.Items.Count - 1) As Object
                lb.Items.CopyTo(List, 0)
                Dim bf As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
                bf.Serialize(fs, List)
            End Using
        Catch ex As IOException
            MessageBox.Show(ex.Message(), "Info - IOException")
        Catch ex As Exception
            MessageBox.Show(ex.Message(), "Info - Exception")
        End Try
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
            Handles Button1.Click
        If Me.TextBox1.Text.Length > 0 Then
            Me.ListBox1.Items.Add(Me.TextBox1.Text)
        End If
    End Sub

End Class
Sourcecode Visual Basic