4

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

NumberOfUsers int User 10

这些列是名称、类型、范围和值。

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

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

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

combo1.SelectedIndex = Settings.Default.NumberOfUsers;

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

有谁知道我在哪里犯错?

4

3 回答 3

6

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

AppData\[Local_or_Roaming]\YourCompanyName\yourprogram.exe_Url_[...]\1.0.0.0\user.config

中间的长文件夹名会有所不同,但我想你会很容易找到它。看看这个文件,看看它是否存储了新值。

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

于 2010-08-14T12:21:10.727 回答
0

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

ComboBox 是否填充了从 0 到 10 的值,或者您是否有处理 ArgumentOutOfRangeExceptions 的代码

于 2010-08-14T15:59:15.483 回答
0

也许这样:

Properties.Settings.Default.NumberOfUsers = combo1.SelectedIndex;
Properties.Settings.Default.Save();
combo1.SelectedIndex = Properties.Settings.Default.NumberOfUsers;
于 2010-08-14T12:12:00.323 回答