将项添加到my.settings StringCollection

时间:2014-05-04 03:46:31

标签: vb.net

我在my.settings中有一个字符串集合。我想从文本框中添加一个字符串。我试过这个:

 My.Settings.Usernames.Add(textbox1.Text)

但是代码执行时我抛出了这个错误:

System.NullReferenceException:未将对象引用设置为对象的实例。

有什么想法吗?感谢任何回答,谢谢。

2 个答案:

答案 0 :(得分:5)

很可能你还没有实例化它。

如果此时运行该程序,则该设置实际上并未创建,因此,如果您尝试在集合中添加或删除项目,则会收到错误"未设置对象引用到一个对象的实例。"

有几种方法可以解决这个问题。首先,如果它是null,你可以在运行时创建设置对象,但这有点麻烦。

更好的解决方案是单击“设置”页面上的“值”文本框。然后单击右侧的省略号以打开字符串集合编辑器。如果在不添加任何字符串的情况下关闭它,“设置”窗口仍然不会实际创建设置对象。为防止这种情况,请在String Collection Editor中添加一个字符串,然后单击OK。然后再次打开编辑器,删除该字符串,然后单击“确定”。这会保留设置对象,但它是空的。

答案 1 :(得分:1)

动态执行此操作的另一种方法是在Form Load事件或Sub Main中,具体取决于您的应用程序的启动方式:

' initialize the collection ias needed:      
If My.Settings.Usernames Is Nothing Then
   My.Settings.Usernames = New System.Collections.Specialized.StringCollection
End If

通过在Settings中添加假字符串来强制它进行初始化是一个很好的知识,并将其保持为设计时任务。但这非常简单,并且像使用前需要实例化的任何其他对象一样对待它。