我正在使用 VS 2010 和 C# 编写我的第一个 Windows Forms 应用程序。它不使用数据库,但我想保存用户设置,比如目录路径和选中的复选框。最简单的方法是什么?
我建议您使用内置应用程序设置
来完成此操作。这篇文章讲解了它的用法。
使用示例:
MyProject.Properties.Settings.Default.MyProperty = "Something";
您可以与“设置”类结合使用可序列化属性。对于少量信息,这确实是最佳选择,因为它易于实现。例如:
[Serializable]
public class MySettings
{
public const string Extension = ".testInfo";
[XmlElement]
public string GUID { get; set; }
[XmlElement]
public bool TurnedOn { get; set; }
[XmlElement]
public DateTime StartTime { get; set; }
public void Save(string filePath)
{
XmlSerializer serializer = new XmlSerializer(typeof(MySettings));
TextWriter textWriter = new StreamWriter(filePath);
serializer.Serialize(textWriter, this);
textWriter.Close();
}
public static MySettings Load(string filePath)
{
XmlSerializer serializer = new XmlSerializer(typeof(MySettings));
TextReader reader = new StreamReader(filePath);
MySettings data = (MySettings)serializer.Deserialize(reader);
reader.Close();
return data;
}
}
这就是你需要的代码。你可以直接将其复制粘贴到你的代码中。只需根据需要添加属性,并不要忘记在你感兴趣的属性上加上[XMLElement]属性,以使内容更加通俗易懂。
这种设计的另一个好处是,你不必费力地使用Application.Settings方法,并且如果需要,你可以手动修改文件。
最简单的方法是在app.config设置中进行。您可以在设计师下的项目属性设置中设置它们(确保将它们设置为用户设置而不是应用程序设置,否则您将无法保存它们),然后使用C#读取和写入它们。
要读取和写入,请访问属性。
Properties.Settings.Default.<your property>
还有一些方法可以将属性保存到用户配置文件中或重置为默认值
Properties.Settings.Default.Reset();
Properties.Settings.Default.Save();
你可以考虑向项目中添加一个本地数据集(然后创建一个设置表),最后将数据导出到xml文件中,这样更容易使用和更灵活。
1- 在设计器中向本地表(DataTable1)添加列(例如:settingName 和 settingValue),然后
//data set
DataSet1 ds = new DataSet1();
DataSet1.DataTable1DataTable settingsTable = (DataSet1.DataTable1DataTable)ds.Tables[0];
//add new setting
settingsTable.Rows.Add(new string[] { "setting1", "settingvalue1" });
//export to xml file
settingsTable.WriteXml("settings.xml");
//if you want to read ur settings back... read from xml
settingsTable.ReadXml("settings.xml");