在C#中使用一组设置

时间:2013-12-06 05:12:13

标签: c# settings.settings

我想写一个程序,不知何故就像一个设计师,用户可以在表单上添加文本框,用户放入这些文本框的所有内容都可以保存(如设置),然后关闭并再次打开表单文本框的文本将重新发送邮件。

所以我决定在project->设置中进行设置,然后在我的代码中创建一个数组。 但每当我想访问我的设置时,它给了我一个例外:

“FormDesigner.exe中发生了'System.NullReferenceException'类型的未处理异常”

这是我定义数组的代码:

Settings[] formsetting=new Settings[3];

这是我处理每个文本框的textchanged事件的代码: (我使用textboxs'标签将设置索引与每个文本框匹配)

void t_TextChanged(object sender, EventArgs e)
        {
            TextBox temp = (TextBox)sender;
            int s =(int) temp.Tag;
            string str = temp.Text;
            frmsetting[s].text = str;
        }

最后一行是我收到错误的地方。

有人可以向我解释问题是什么以及如何解决? 如果我的方式有问题,请你展示另一种做法。 感谢

2 个答案:

答案 0 :(得分:4)

您尚未初始化数组中的对象。

这样做:

Settings[] formsetting = new Settings[3];

..创建数组。但是所有3个都是null。这样做:

var formsetting = new Settings[3] {
    new Settings(),
    new Settings(),
    new Settings()
};

答案 1 :(得分:3)

在初始化数组时,实际上并没有初始化任何值。您目前拥有的内容相当于以下内容:

Settings[] formsetting=new Settings[3];
formsetting[0] = null;
formsetting[1] = null;
formsetting[2] = null;

您需要在执行任何操作之前初始化要使用的索引处的值。