my.settingsにコンボボックスアイテムを保存し、テキストボックスで表示/編集する方法
-
25-10-2019 - |
質問
私は次のことをしようとしています:
- my.settingsのコンボボックスからアイテムを保存します(データ型は重要ではありませんが、提案が必要です)。
- これらのアイテムを取得して、フォームロードでコンボボックスを入力します。
- また、これらのアイテム(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
このようにして、あなたはタイピング間違いを犯さないことを確信しています。また、設定が実際に存在することも確信しています。また、設定が実際に保存されているかどうかを確認するためにコードを介してステップしてみましたか?
所属していません StackOverflow