在项目的属性中,我创建了一个像这样的设置
NumberOfUsers int User 10
列是名称,类型,范围和值。
然后有一个ComboBox,用户可以在其中设置'NumberOfUsers'。此组合具有SelectedIndexChanged事件,每当用户更改组合的值时,我都会保存更改。这是代码:
Settings.Default.NumberOfUsers = combo1.SelectedIndex;
Settings.Default.Save();
具有此组合的表单从父作为frm.ShowDialog();
调用,在子表单的构造函数中,我尝试根据设置条目设置组合的选定索引
combo1.SelectedIndex = Settings.Default.NumberOfUsers;
但是,这不起作用,即组合不会从设置中提取值,而是默认为0作为选定索引。
任何人都知道我弄错了什么?
答案 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