使用 Settings.Default.Properties 时未加载 C# 用户设置
C# user settings not loading when using Settings.Default.Properties
我正在尝试找到一种加载设置的简单方法(我有很多设置)。我试图使设置名称与控件名称相同,这样我就可以遍历列表并将设置与正确的控件匹配。 textBoxData.Data1 = MyProject.Settings.Default.Data1;
之类的东西完全没问题。
我正在尝试使用 属性 集合,但它只给我设计时的默认值,而不是保存在 user.config 文件中的值(保存正确)。
Dictionary<String, String> settings_dictionary = new Dictionary<String, String>();
foreach (SettingsProperty property in MyProject.Settings.Default.Properties)
{
try
{
String name = Convert.ToString(property.Name);
String value = Convert.ToString(property.DefaultValue);
settings_dictionary.Add(name, value);
Debug.WriteLine("Loading from settings: {0} - {1}", name, value);
}
catch
{
MessageBox.Show(ex.Message.ToString());
}
}
一定有我找不到的东西不见了。也很乐意换成更好的方法!
你应该使用 Settings.Default.PropertyValues
而不是 Settings.Default.Properties
foreach (SettingsPropertyValue property in Lab.Properties.Settings.Default.PropertyValues)
{
try
{
String name = Convert.ToString(property.Name);
String value = Convert.ToString(property.PropertyValue);
Console.WriteLine("{0}:{1}", name, value);
Debug.WriteLine("Loading from settings: {0} - {1}", name, value);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
}
我正在尝试找到一种加载设置的简单方法(我有很多设置)。我试图使设置名称与控件名称相同,这样我就可以遍历列表并将设置与正确的控件匹配。 textBoxData.Data1 = MyProject.Settings.Default.Data1;
之类的东西完全没问题。
我正在尝试使用 属性 集合,但它只给我设计时的默认值,而不是保存在 user.config 文件中的值(保存正确)。
Dictionary<String, String> settings_dictionary = new Dictionary<String, String>();
foreach (SettingsProperty property in MyProject.Settings.Default.Properties)
{
try
{
String name = Convert.ToString(property.Name);
String value = Convert.ToString(property.DefaultValue);
settings_dictionary.Add(name, value);
Debug.WriteLine("Loading from settings: {0} - {1}", name, value);
}
catch
{
MessageBox.Show(ex.Message.ToString());
}
}
一定有我找不到的东西不见了。也很乐意换成更好的方法!
你应该使用 Settings.Default.PropertyValues
而不是 Settings.Default.Properties
foreach (SettingsPropertyValue property in Lab.Properties.Settings.Default.PropertyValues)
{
try
{
String name = Convert.ToString(property.Name);
String value = Convert.ToString(property.PropertyValue);
Console.WriteLine("{0}:{1}", name, value);
Debug.WriteLine("Loading from settings: {0} - {1}", name, value);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
}