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. Mianowicie pokazuje mi się następujący błąd:
Konwersja typu 'Students' na typ 'String' nie jest prawidłowa.
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
Z góry dzięki.