Questo codice salva il contenuto della listbox di nome listbox1 in un file binario di nome listbox.bin usando la serializzazione. Il caricamento e il salvataggio vengono effettuati rispettivamente all'apertura e alla chiusura del form.
Questo metodo è il più generico possibile, per cui è possibile inserire nel listbox qualunque genere di oggetti, purché siano serializzabili.
codice:
Private Sub Form_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
Dim s As Stream
Try
s = File.Open("listbox.bin", FileMode.Create, FileAccess.ReadWrite)
Catch ex As Exception
MessageBox.Show(ex.ToString(), "Errore durante il salvataggio della listbox.", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
Dim sf As New BinaryFormatter
For Each i As Object In ListBox1.Items
sf.Serialize(s, i)
Next
s.Close()
End Sub
Private Sub Form_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim s As Stream
Try
s = File.Open("listbox.bin", FileMode.Open)
Catch ex As FileNotFoundException
'Se non c'è il file non dice nulla
Exit Sub
Catch ex As Exception
'Altrimenti protesta sonoramente
MessageBox.Show(ex.ToString(), "Errore durante il caricamento della listbox.", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
Dim sf As New BinaryFormatter
Do
Try
ListBox1.Items.Add(sf.Deserialize(s))
Catch ex As Exception
Exit Do
End Try
Loop
s.Close()
End Sub