Frage

Ich versuche Folgendes zu tun:

  1. Speichern Sie Artikel von Combobox in My.Setings (Datentyp spielt keine Rolle, benötigen jedoch Vorschläge).
  2. Rufen Sie diese Elemente ab, um einen Combobox für Formload zu bevölkern.
  3. 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.

War es hilfreich?

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?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top