No has dado toda la información necesaria. Daré por hecho que los elementos contenidos en la colección de tu
ListBox deben ser de un tipo serializable, y que además probablemente sean de tipo String... al ser lo más habitual.
En ese caso, es suficiente con que uses una propiedad de tipo
StringCollection como en la siguiente imagen:
- ¿Cómo hacer para guardar los elementos de tu ListBox?:
Imports ListBoxExtensions
My.Settings.ListBoxItems = Me.ListBox1.Items.ToStringCollection()
Public Module ListBoxExtensions
''' <summary>
''' Converts the specified a <see cref="ListBox.ObjectCollection"/> to a <see cref="StringCollection"/>.
''' </summary>
'''
''' <param name="sender">
''' The source <see cref="ListBox.ObjectCollection"/>.
''' </param>
'''
''' <returns>
''' The resulting <see cref="StringCollection"/>.
''' </returns>
<Extension>
<EditorBrowsable(EditorBrowsableState.Always)>
<DebuggerStepThrough>
Public Function ToStringCollection(ByVal sender As ListBox.ObjectCollection) As StringCollection
' Intentionally, Will throw a InvalidCastException if the collection contains non-string types.
For Each item As String In sender
Next item
End Function
End Module
- ¿Cómo hacer para restaurar los elementos de tu ListBox?:
If (My.Settings.ListBoxItems?.Count <> 0) Then
' Me.ListBox1.Items.Clear()
Me.ListBox1.BeginUpdate()
For Each item As String In My.Settings.ListBoxItems
Me.ListBox1.Items.Add(item)
Next item
Me.ListBox1.EndUpdate()
End If
En C#, sería el mismo procedimiento (adaptando la sintaxis).
Saludos!