my.settingsにコンボボックスアイテムを保存し、テキストボックスで表示/編集する方法

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

質問

私は次のことをしようとしています:

  1. my.settingsのコンボボックスからアイテムを保存します(データ型は重要ではありませんが、提案が必要です)。
  2. これらのアイテムを取得して、フォームロードでコンボボックスを入力します。
  3. また、これらのアイテム(1行につき1アイテム)をテキストボックスに表示します。ここでは、編集を編集して編集を保存し、コンボボックスの両方に保存できます。

私は少し迷っています、どうすればこれを行うべきですか?

既存のコード:

    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

ただし、このコードは値を適切に保存したり、コンボボックスまたはテキストボックスに適切に表示したりしません。

役に立ちましたか?

解決

設定にStringCollectionタイプを使用できます。StringCollectionが利用可能になるには、次のインポートステートメントがコードに必要になる場合があります。 Imports System.Collections.Specialized

その後、このStringCollectionをコンボボックスのDataSourceとして使用できます。

編集: あなたのコードで、あなたはすでにstringCollectionを使用していることを見ました。良い。さて、このように設定にアクセスしてみませんか?

My.Settings.Items = itemCollection

このようにして、あなたはタイピング間違いを犯さないことを確信しています。また、設定が実際に存在することも確信しています。また、設定が実際に保存されているかどうかを確認するためにコードを介してステップしてみましたか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top