用户设置未保存(Settings.Default.Save();)

时间:2010-08-14 12:01:51

标签: c# .net combobox application-settings

在项目的属性中,我创建了一个像这样的设置

NumberOfUsers int User 10

列是名称,类型,范围和值。

然后有一个ComboBox,用户可以在其中设置'NumberOfUsers'。此组合具有SelectedIndexChanged事件,每当用户更改组合的值时,我都会保存更改。这是代码:

Settings.Default.NumberOfUsers = combo1.SelectedIndex;
Settings.Default.Save();

具有此组合的表单从父作为frm.ShowDialog();调用,在子表单的构造函数中,我尝试根据设置条目设置组合的选定索引

combo1.SelectedIndex = Settings.Default.NumberOfUsers;

但是,这不起作用,即组合不会从设置中提取值,而是默认为0作为选定索引。

任何人都知道我弄错了什么?

3 个答案:

答案 0 :(得分:5)

我认为你没有犯任何错误。据我所知,VS还会在构建期间重新生成配置文件。我会在试验机上试试。
它会将用户设置存储在用户的AppData(本地或漫游?)中,如下所示:

  

应用程序数据\ [Local_or_Roaming] \ YourCompanyName \ yourprogram.exe_Url _ [...] \ 1.0.0.0 \ user.config

中间长的foldername将是s.g.不同,但我想你会很容易找到它。查看此文件,看看它是否存储新值。

我在许多地方使用它,在生产环境中它运行良好。 说实话,在开发机器上我从来没有工作过。

答案 1 :(得分:0)

也许就是这样:

Properties.Settings.Default.NumberOfUsers = combo1.SelectedIndex;
Properties.Settings.Default.Save();
combo1.SelectedIndex = Properties.Settings.Default.NumberOfUsers;

答案 2 :(得分:0)

您是在ComboBox中输入NumberOfUsers的新值还是从下拉列表中选择它?
如果您键入值,SelectedIndex将不会更改,因此不会触发任何事件。

ComboBox的填充值是0到10还是你有代码来处理ArgumentOutOfRangeExceptions