使用settings.Default.Properties时未加载C#用户设置

本文关键字:加载 用户 设置 settings Default Properties 使用 | 更新日期: 2023-09-27 18:20:55

我正试图找到一种简单的方法来加载设置(我有很多设置)。我试图使设置名称与控件名称相同,这样我就可以循环浏览列表,并将设置与正确的控件匹配。像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.Properties时未加载C#用户设置

您应该使用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());
    }
}