Как сохранить элементы ComboBox в My.Settings и отображать / редактировать в текстовом поле - PullRequest
2 голосов
/ 16 марта 2011

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

  1. Храните предметы из ComboBox в My.Settings (тип данных не имеет значения, но нужны предложения).
  2. Получите эти элементы, чтобы заполнить поле со списком при загрузке формы.
  3. Также отображайте эти элементы (1 элемент в строке) в TextBox, где я могу редактировать и сохранять изменения как в 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

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

1 Ответ

1 голос
/ 16 марта 2011

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

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

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

My.Settings.Items = itemCollection

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

...