Cześć, ostatnio zacząłem nad uczeniem się listbox'ów w VB.net i chciałem stworzyć coś na styl listy uczniów z dodatkowymi informacjami:

    Private Class Uczniowie
        Private m_Imie As String
        Private m_Wiek As String

        Public Sub New(ByVal new_Imie As String, ByVal _
        new_Wiek As String
        )
            m_Imie = new_Imie
            m_Wiek = new_Wiek
        End Sub

        Public Overrides Function ToString() As String
            Return m_Imie
        End Function

        Public Function Wiek() As String
            Return m_Wiek
        End Function
    End Class

Tak więc uczniów dodaje do listboxa w następujący sposób:

ListBox1.Items.Add(New Uczniowie(ImieUcznia.Text, WiekUcznia.Text)) 'ImieUcznia i  WiekUcznia są textboxami.

lecz chciałem też zapisać te informacje, aby podczas ponownego uruchomienia programu były automatyczne wpisywane. Próbowałem zrobić najpierw event, który zapisuje każdy item z ListBoxa ale z użyciem funkcji powyżej to nie działa.

    Private Sub main_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing

        For Each item In ListBox1.Items
            My.Settings.Uczniowie.Add(item)
            My.Settings.Save()
        Next


    End Sub

Potem chciałbym jeszcze załadować te informacje, ale tak samo jak przy evencie z zapisywaniem informacji przy zamykaniu programu to nie działa.

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        If My.Settings.Uczniowie Is Nothing Then
            My.Settings.Uczniowie = New Specialized.StringCollection
        Else
            For Each item In My.Settings.Uczniowie
                ListBox1.Items.Add(item)
            Next
        End If

    End Sub