So speichern Sie Combobox -Elemente in My.Settings und Anzeigen/Bearbeiten mit Textbox
-
25-10-2019 - |
Frage
Ich versuche Folgendes zu tun:
- Speichern Sie Artikel von Combobox in My.Setings (Datentyp spielt keine Rolle, benötigen jedoch Vorschläge).
- Rufen Sie diese Elemente ab, um einen Combobox für Formload zu bevölkern.
- Zeigen Sie diese Elemente (1 Element pro Zeile) in Textbox auch an, in der ich die Änderungen sowohl in My.Setings als auch in Combobox bearbeiten und speichern kann.
Ich bin ein bisschen verloren, wie soll ich das machen?
Vorhandener Code:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Labels.LoadSettings()
txtNumOfLabels.Text = Labels.numOfLabels
cboItem.Items.Clear()
For Each s As String In Labels.items
cboItem.Items.Add(s)
Next
End Sub
Public Shared items As New Specialized.StringCollection
Shared Sub LoadSettings()
Try
items = My.Settings("Items")
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation)
End Try
End Sub
Private Sub Options_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
For Each s As String In Labels.items
txtItems.AppendText(s + Environment.NewLine)
Next
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Dim itemCollection As New Specialized.StringCollection
For Each s As String In txtItems.Lines
itemCollection.Add(s)
Next
My.Settings("Items") = itemCollection
My.Settings.Save()
Labels.LoadSettings()
Form1.cboItem.Items.Clear()
For Each s As String In Labels.items
Form1.cboItem.Items.Add(s)
Next
Me.Close()
End Sub
Dieser Code speichert die Werte jedoch nicht ordnungsgemäß oder zeigt sie in Combobox oder Textbox ordnungsgemäß an.
Lösung
Sie können einen StringCollection -Typ für Ihre Einstellung verwenden. Möglicherweise benötigen Sie die folgende Import -Anweisung in Ihrem Code, damit die StringCollection verfügbar ist: Imports System.Collections.Specialized
Sie können diese StringCollection dann als DataSource für den Combobox verwenden.
Bearbeiten: Säge in Ihrem Code, den Sie bereits mit StringCollection verwenden. Gut. Warum greifen Sie jetzt nicht auf Ihre Einstellung zu?
My.Settings.Items = itemCollection
Auf diese Weise sind Sie sicher, dass Sie keinen Schreibfehler machen, und Sie sind auch sicher, dass Sie tatsächlich existieren. Haben Sie auch versucht, den Code zu durchsuchen, um zu überprüfen, ob Ihre Einstellung tatsächlich gespeichert ist oder nicht?