我有一个包含多个文本框、单选按钮、复选框等的表单。现在我通过声明每个值并保存到程序设置来分别保存它们的值:
Properties.Settings.Default.EmailFrom = txtbxEmailFrom.Text;
我想找到一种方法来遍历所有对象并尽可能保存它们的设置,这样我就不必单独声明每个对象。
有没有办法做到这一点?或者更好的方法来保存我的文本框的文本、复选框和单选按钮的检查状态等?
最佳答案
您可以使用 property binding到应用程序设置。
这样您就可以通过调用 Properties.Settings.Default.Save();
来简单地保存设置,并且您不需要遍历控件,因为属性已绑定(bind)到设置及其值自动推送到更改设置。
您可以使用设计器或代码将属性绑定(bind)到设置。
使用设计器
在设计时选择您的控件,然后在属性网格中,在 (ApplicationSettings)
下单击 ...
for (PropertyBinding)
并从对话框,将您需要的属性绑定(bind)到设置。
使用代码
您可以将属性绑定(bind)到设置,使用代码的方式与使用代码进行数据绑定(bind)时的方式相同:
this.textBox1.DataBindings.Add(
new System.Windows.Forms.Binding("Text", Properties.Settings.Default, "Test", true,
DataSourceUpdateMode.OnPropertyChanged));
保存设置
要保存设置,在设置对象上调用 Save()
就足够了,例如 Closing
表单事件:
Properties.Settings.Default.Save();
注意
作为设置的不同控件的替代方法,您还可以使用 PropertyGrid
来显示所有设置并对其进行编辑。
更多信息:
关于c# - 如何在表单中编辑和保存设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34483338/