您不能在应用程序设置中存储数组。您可以做的是创建 type 的设置StringCollection
。然后,您可以将其用作in 代码,或者如果您确实需要数组,则可以在数组和数组StringCollection
之间来回传输数据。StringCollection
首先打开项目属性的设置页面并创建一个新的设置类型System.Collections.Specialized.StringCollection
。对于此示例,我将为其命名,MyStringCollection
但您应该为您的应用程序适当地命名它。执行此操作时,请注意该Value
字段默认为空。这意味着该设置是Nothing
默认设置。没关系,但这意味着您需要在第一次使用之前在代码中实际创建集合对象,例如
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If My.Settings.MyStringCollection Is Nothing Then
My.Settings.MyStringCollection = New StringCollection
End If
'Use My.Settings.MyStringCollection here.
End Sub
或者,您可以强制设置 UI 为您创建对象。为此,请选择该Value
设置的字段并单击浏览 (...) 按钮。添加任意字符并单击“确定”按钮。请注意,该Value
字段填充了一个 XML 片段,其中包含您输入的文本。再次单击浏览 (...) 按钮,删除文本并再次单击确定。请注意,即使删除了您输入的文本,XML 仍然存在。该 XML 现在将StringCollection
自动创建对象,因此您不需要代码来执行此操作。
如果您对一组值感到满意,String
那么您可以在任何您喜欢的地方直接在代码中使用该设置。在大多数情况下,它像 a 一样工作List(Of String)
,允许您随意添加和删除项目。如果您特别需要一个数组或需要其他类型,String
则必须进行一些翻译,例如
'Load the collection items into a String array.
Dim myStringArray = My.Settings.MyStringCollection.Cast(Of String)().ToArray()
'Load the collection items into an Integer array.
Dim myIntegerArray = My.Settings.MyStringCollection.Cast(Of String)().Select(Function(s) CInt(s)).ToArray()
'Repopulate the collection from a String array.
My.Settings.MyStringCollection.Clear()
My.Settings.MyStringCollection.AddRange(myStringArray)
'Repopulate the collection from an Integer array.
My.Settings.MyStringCollection.Clear()
My.Settings.MyStringCollection.AddRange(myIntegerArray.Select(Function(n) n.ToString()).ToArray())
如果您想在 a 中显示集合的内容,则TextBox
可以执行以下操作:
TextBox1.Text = String.Join(",", My.Settings.MyStringCollection.Cast(Of String)())
String
这将创建一个包含所有项目的单个逗号分隔的。要从TextBox
包含此类文本的集合中重新填充集合,请执行以下操作:
My.Settings.MyStringCollection.Clear()
My.Settings.MyStringCollection.AddRange(TextBox1.Text.Split(","c))