Comment enregistrer des éléments dans ComboBox My.Settings et affichage / modifier avec zone de texte

StackOverflow https://stackoverflow.com/questions/5326635

Question

Je suis en train de faire ce qui suit:

  1. Stocker les articles de ComboBox dans My.Settings (type de données n'a pas d'importance, mais les suggestions de besoin).
  2. Récupérer ces éléments pour remplir une zone de liste déroulante sur formload.
  3. afficher ces éléments (1 élément par ligne) dans TextBox, où je peux modifier et enregistrer les modifications à la fois My.Settings et ComboBox.

Je suis un peu perdu, comment dois-je faire de manière?

code existant:

    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

Mais ce code ne sauvera pas les valeurs correctement, ou les afficher correctement dans la zone de liste déroulante ou zone de texte.

Était-ce utile?

La solution

Vous pouvez utiliser un type StringCollection pour votre configuration, vous devrez peut-être la déclaration des importations suivantes dans votre code pour le StringCollection être disponible: Imports System.Collections.Specialized

Vous pouvez ensuite utiliser ce StringCollection comme source de données pour la zone de liste déroulante.

Modifier Saw dans votre code que vous utilisez déjà StringCollection. Bien. Maintenant, pourquoi ne pas vous accédez à votre cadre comme celui-ci?

My.Settings.Items = itemCollection

De cette façon, vous êtes sûr de ne pas faire une erreur de frappe, et vous êtes aussi sûr que vous paramètre existe réellement. Aussi avez-vous essayez parcourant le code pour vérifier si votre configuration est effectivement enregistrée ou non?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top