Domanda

Sto cercando di fare quanto segue:

  1. Immagazzina oggetti da ComboBox in My.Settings (tipo di dati non importa, ma i suggerimenti bisogno).
  2. Recuperare questi elementi per popolare un ComboBox su FormLoad.
  3. visualizzare anche i seguenti articoli (1 articolo per linea) in TextBox, dove posso modificare e salvare le modifiche ad entrambi My.Settings e ComboBox.

sono un po 'perso, come devo andare a fare questo?

Codice esistente:

    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

Ma questo codice non salvare i valori correttamente, o visualizzati correttamente nella casella combinata o casella di testo.

È stato utile?

Soluzione

Si potrebbe utilizzare un tipo StringCollection per l'impostazione, potrebbe essere necessario la seguente dichiarazione importazioni nel codice per la StringCollection sia disponibile: Imports System.Collections.Specialized

È possibile quindi utilizzare questo StringCollection come il DataSource per il combobox.

Modifica Sega nel codice che si utilizza già StringCollection. Buona. Ora, perché non si accede ambiente come questo?

My.Settings.Items = itemCollection

In questo modo si è sicuri di non fare un errore di battitura, e sei anche sicuro che l'impostazione esiste realmente. Inoltre avete provato passando attraverso il codice per verificare se l'impostazione è in realtà salvato o no?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top