如何在My.Settings中保存ComboBox项目,并使用文本框显示/编辑

时间:2011-03-16 14:21:51

标签: vb.net configuration combobox my.settings

我正在尝试执行以下操作:

  1. 在My.Settings中存储ComboBox中的项目(数据类型无关紧要,但需要建议)。
  2. 检索这些项目以在formload上填充ComboBox。
  3. 还在TextBox中显示这些项目(每行1个项目),我可以在其中编辑并保存对My.Settings和ComboBox的编辑。
  4. 我有点失落,我该怎么做呢?

    现有代码:

        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 个答案:

答案 0 :(得分:1)

您可以为您的设置使用StringCollection类型,您可能需要在代码中使用以下import语句才能使StringCollection可用:Imports System.Collections.Specialized

然后,您可以将此StringCollection用作组合框的数据源。

编辑:在您的代码中看到您已使用StringCollection。好。现在你为什么不这样访问你的设置?

My.Settings.Items = itemCollection

这样你肯定不会输入错误,而且你也确定你的设置确实存在。您是否也尝试单步执行代码以检查您的设置是否已实际保存?