UserControl:保存价值/偏好的最佳方法

时间:2015-09-03 00:02:55

标签: c# winforms user-controls

我创建了一个UserControl,它基本上是一个面板,其中包含用于设置用户首选项和值的各种控件(例如年龄,身高,男/女,......,文本框,单选按钮,复选框等)和它用于主WinForm应用程序。我正在寻找保存用户选择的“最佳”或最简单的方法,以便它们在下一次应用程序加载时保留。

如果控件在主WinForm上,我会使用Properties.Settings方法(但有很多,我不想这样做)。我还考虑过创建保存/加载方法并使用XML序列化,但这需要创建和更新~40个属性。我很喜欢使用XML方法,但我想请问各位好友,看看是否有一种我不知道的简单方法。

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为序列化和数据绑定的组合是可行的方法,只需创建一个包含要保存的所有设置的类,将它们绑定到控件,序列化并在退出表单时加载它们并加载加载表单时它们:

_settings = new Settings()
{
    Name = "Name",
    Name1 = "Name1",
    Name2 = "Name2"
};
textBox1.DataBindings.Add("Text", _settings, "Name");
textBox2.DataBindings.Add("Text", _settings, "Name1");
textBox3.DataBindings.Add("Text", _settings, "Name2");
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
   XmlSerializer ser = new XmlSerializer(typeof(Settings));
   using (Stream stream = File.OpenWrite("settings.xml"))
   {
       ser.Serialize(stream, _settings);
   }
}