Come salvare ComboBox elementi in My.Settings, e la visualizzazione / modificare con testo
-
25-10-2019 - |
Domanda
Sto cercando di fare quanto segue:
- Immagazzina oggetti da ComboBox in My.Settings (tipo di dati non importa, ma i suggerimenti bisogno).
- Recuperare questi elementi per popolare un ComboBox su FormLoad.
- 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.
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?