我正在尝试使用标签为我的应用程序保存设置。每个选项卡显示路径中的一些数据。我把它存储起来:
private Dictionary<int, string> _listTabs = new Dictionary<int, string>();
当我创建新标签时,我在字典
中添加新项目 _listTabs.Add(listTabs.Count++,CurrentPath);
在关闭程序之前我想在设置中保存这个字典:
foreach(KeyValuePair kvp in _listTabs)
{
var property = new SettingsProperty(kvp.Key);
property.DefaultValue = kvp.Value;
Settings.Default.Properties.Add(property);
}
Settings.Defaut.Save();
但是,它不起作用。错误在哪里?
答案 0 :(得分:1)
您需要告诉我们,如果应用程序由于某种原因失败,您会看到错误。
同样在上面的代码中,我看不到任何保存设置的方法
如果要在应用程序之间保留对用户设置的更改 会话,调用保存方法,如以下代码所示:
Properties.Settings.Default.Save();
有关用户设置的详细信息,请查看Using Settings in C#,特别关注Using Settings at Run Time的区域。
确定此功能后,请检查用户设置文件。 This Answer显示设置保存到的位置。
答案 1 :(得分:0)
当我们在运行时创建新设置时,添加到Properties集合并尝试保存它,新设置实际上不会保存在user.config文件中。
我遇到了同样的问题并修改如下:
您将看到在运行时添加到集合的新属性将保存在user.config文件中。但是这里有第二个问题,即尝试从user.config加载值。
它只会加载设计时出现的设置值,而与user.config中的其他属性无关。
我为此做的修复是再次在Properties集合中添加具有某个默认值的属性,然后调用以下内容:
2 从user.config加载属性值:
SettingsProvider provider = Properties.Settings.Default.Providers [ “LocalFileSettingsProvider”];
SettingsPropertyValueCollection propertyValueCollection = provider.GetPropertyValues( Properties.Settings.Default.Context,Properties.Settings.Default.Properties);
这会将user.config中的值加载到PropertyValues集合中,然后可以使用这些值。
希望它有所帮助...
答案 2 :(得分:0)
我注意到代码的最后一行是
Settings.Defaut.Save();
我相信有拼写错误。 Defaut
应为Default
。