You can use property binding to application settings.
This way you can simply save settings by calling Properties.Settings.Default.Save();
and you don't need to loop over controls, because the properties are bound to settings and their values automatically push into settings on change.
You can bind properties to settings using designer or using code.
Using Designer
select your control at design time, then in property grid, under (ApplicationSettings)
click ...
for (PropertyBinding)
and from the dialog, bind the properties you need to the settings.
Using Code
You can bind properties to settings, using code the same way you do it when data-binding using code:
this.textBox1.DataBindings.Add(
new System.Windows.Forms.Binding("Text", Properties.Settings.Default, "Test", true,
DataSourceUpdateMode.OnPropertyChanged));
Save Settings
To save settings, it's enough to call Save()
on settings object some where like Closing
event of form:
Properties.Settings.Default.Save();
Note
As an alternative to different controls for settings, you can also use a PropertyGrid
to show all the settings and edit them.
More information:
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…