C# 更改所有设置文件值
C# Change all Settings files values
我有一些表格,并为每个表格制作了一个包含
的设置文件
int X
int Y
bool FirstRun
我为用户保存这些,以便每次启动程序时 window 的位置都在同一个位置。我在想我会添加一个按钮来将它们重置为标准值。
我找到了一种将它们保存到列表的方法
list<Type> settingsList = new list<Type>();
然后
settingsList.Add(typeof(SettingsFileName));
但是有没有办法制作一个 foreach
循环来改变它们,还是我需要手动为它们全部改变?
--编辑--
左侧最小设置文件将包含右侧所有设置文件截至目前
我用
保存文件
AdminKontoplanSettings.Default.X = this.Location.X;
AdminKontoplanSettings.Default.Y = this.Location.Y;
AdminKontoplanSettings.Default.Height = this.Height;
AdminKontoplanSettings.Default.Save();
我不确定你想要什么,但我认为这可能会有所帮助:
foreach (Type t in settingList)
{
t.x = 0;
t.y = 0;
}
这将更改您表单的所有位置。
如果您希望遍历您的设置文件,您应该考虑创建一个接口并让您的设置class继承它。
设置 class 是 partial classes
,你有一个部分由设计者控制,另一个为你(从设计者那里你有一个按钮 "View code" 可以进入部分的这一部分class).
所以你的界面看起来像:
internal interface IMySettings
{
int X { get; set; }
int Y { get; set; }
bool FirstRun { get; set; }
void Save();
}
Save
是允许迭代时进行保存操作
您的设置文件可能如下所示:
internal sealed partial class MySettings : IMySettings
然后,将所有设置加载到 List<IMySettings>
字段并遍历它们。
棘手的部分是将它们加载到列表中,您可以通过反射或手动完成:
var mySettingList = new List<IMySettings> {AdminKontoplanSettings.Default, MySetting.Defalut, AnotherSettings.Default ....}
然后,在你"reset"按钮onclick
方法:
foreach (var setting in this.mySettingList)
{
setting.X = 0;
setting.Y = 0;
setting.FirstRun = true;
setting.Save();
}
我有一些表格,并为每个表格制作了一个包含
的设置文件int X
int Y
bool FirstRun
我为用户保存这些,以便每次启动程序时 window 的位置都在同一个位置。我在想我会添加一个按钮来将它们重置为标准值。
我找到了一种将它们保存到列表的方法
list<Type> settingsList = new list<Type>();
然后
settingsList.Add(typeof(SettingsFileName));
但是有没有办法制作一个 foreach
循环来改变它们,还是我需要手动为它们全部改变?
--编辑--
左侧最小设置文件将包含右侧所有设置文件截至目前
我用
保存文件AdminKontoplanSettings.Default.X = this.Location.X;
AdminKontoplanSettings.Default.Y = this.Location.Y;
AdminKontoplanSettings.Default.Height = this.Height;
AdminKontoplanSettings.Default.Save();
我不确定你想要什么,但我认为这可能会有所帮助:
foreach (Type t in settingList)
{
t.x = 0;
t.y = 0;
}
这将更改您表单的所有位置。
如果您希望遍历您的设置文件,您应该考虑创建一个接口并让您的设置class继承它。
设置 class 是 partial classes
,你有一个部分由设计者控制,另一个为你(从设计者那里你有一个按钮 "View code" 可以进入部分的这一部分class).
所以你的界面看起来像:
internal interface IMySettings
{
int X { get; set; }
int Y { get; set; }
bool FirstRun { get; set; }
void Save();
}
Save
是允许迭代时进行保存操作
您的设置文件可能如下所示:
internal sealed partial class MySettings : IMySettings
然后,将所有设置加载到 List<IMySettings>
字段并遍历它们。
棘手的部分是将它们加载到列表中,您可以通过反射或手动完成:
var mySettingList = new List<IMySettings> {AdminKontoplanSettings.Default, MySetting.Defalut, AnotherSettings.Default ....}
然后,在你"reset"按钮onclick
方法:
foreach (var setting in this.mySettingList)
{
setting.X = 0;
setting.Y = 0;
setting.FirstRun = true;
setting.Save();
}