ApplicationSettings 没有内置支持来仅重置某些属性。但要解决此问题,您可以使用以下任一选项:
创建一个方法来重置TabPage的所有绑定控件
在 Designer 支持下使用多个设置文件
选项 1 - 创建一个重置 TabPage 的所有绑定控件的方法
您可以创建一个查看标签页控件并检查它是否绑定到应用程序设置的方法,在设置中找到该属性并将其值重置为默认值。然后你可以重置一个TebPage宽度的设置一行代码:ResetSettings(tabPage1);。
方法如下:
private void ResetSettings(TabPage tabPage)
{
foreach (Control c in tabPage.Controls)
{
foreach (Binding b in c.DataBindings)
{
if (b.DataSource is ApplicationSettingsBase)
{
var settings = (ApplicationSettingsBase)b.DataSource;
var key = b.BindingMemberInfo.BindingField;
var property = settings.Properties[key];
var defaultValue = property.DefaultValue;
var type = property.PropertyType;
var value = TypeDescriptor.GetConverter(type).ConvertFrom(defaultValue);
settings[key] = value;
//You can also save settings
settings.Save();
}
}
}
}
选项 2 - 在 Designer 支持下使用多个设置文件
如果使用单个设置文件的原因是因为设计器支持,您应该知道您也可以使用多个设置文件来获得设计器支持。然后您可以使用不同的设置文件并分别重置每个设置组。您可以使用这样的代码简单地将它们封装在一个类中:
public static class MySettings
{
public static Sample.General General
{
get { return Sample.General.Default; }
}
public static Sample.Advanced Advanced
{
get { return Sample.Advanced.Default; }
}
public static void ResetAll()
{
General.Reset();
Advanced.Reset();
}
public static void SaveAll()
{
General.Save();
Advanced.Save();
}
}
要重置设置组,只需调用MySettings.General.Reset();
要重置所有设置,您可以拨打MySettings.ResetAll();
设计时支持说明
要让设计器支持将属性绑定到设置,请在项目的根目录中创建多个设置文件。不要将设置文件放在文件夹中。 设置选择器仅显示位于Properties 文件夹中的Settings.settings 文件以及位于项目根目录中的文件。这样您就可以在树形视图中看到不同的设置文件和设置属性,如下所示: