Как сохранить элементы ComboBox в my.Settings и отображать/редактировать с помощью текстового поля.

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

Вопрос

Я пытаюсь сделать следующее:

  1. Храните элементы от ComboBox в my.Settings (DataType не имеет значения, но нуждается в предложениях).
  2. Получите эти элементы, чтобы заполнить ComboBox на загрузке формы.
  3. Также отобразите эти элементы (1 элемент на строку) в текстовом поле, где я могу редактировать и сохранить изменения как для my.settings, так и для Combobox.

Я немного потерян, как мне это сделать?

Существующий код:

    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

Но этот код не сохранит значения должным образом или правильно отобразит их в ComboBox или Textbox.

Это было полезно?

Решение

Вы можете использовать тип StringCollection для вашего настройки, вам может потребоваться следующее оператор Imports в вашем коде, чтобы stringCollection была доступна: Imports System.Collections.Specialized

Затем вы можете использовать эту StringCollection в качестве источника данных для ComboBox.

Редактировать: В своем коде видели, что вы уже используете StringCollection. Хороший. Теперь, почему бы вам не получить доступ к вашей настройке?

My.Settings.Items = itemCollection

Таким образом, вы уверены, что не совершаете ошибку печати, и вы также уверены, что настройки действительно существуют. Также вы пробовали пройти через код, чтобы проверить, действительно ли ваш настройка сохраняется или нет?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top