使用C#在Windows窗体上保存简单的用户首选项

Pau*_*aul 6 c# settings winforms

我正在使用VS 2010C#编写我的第一个Windows窗体应用程序.它不使用数据库,但我想保存用户设置,如目录路径和选中的复选框.保存这些偏好的最简单方法是什么?

Eri*_*lli 9

我建议你使用内置应用程序Settings来做到这一点.这是一篇谈论它的文章.

样品用法:

MyProject.Properties.Settings.Default.MyProperty = "Something";
Run Code Online (Sandbox Code Playgroud)


A.R*_*.R. 6

您可以将serializable属性与'settings'类一起使用.对于少量信息,这是最好的选择,因为它很容易实现.例如:

  [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;
    }
  }
Run Code Online (Sandbox Code Playgroud)

你去吧 您可以直接将其剪切并粘贴到代码中.只需根据需要添加属性,不要忘记有趣属性的[XMLElement]属性.

这种设计的另一个好处是,您不必使用繁琐的Application.Settings方法,如果需要,您可以手动修改文件.