2010-08-14 5 views
3

В свойствах проекта я создал установку, как этотПользовательские настройки не сохраняются (Settings.Default.Save();)

NumberOfUsers int User 10 

столбцы Name, Type, Scope и Value.

Тогда есть ComboBox, где пользователь может установить «NumberOfUsers». В этом комбо есть событие SelectedIndexChanged, где я сохраняю изменения, когда пользователь меняет значение комбо. Вот код:

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

Форма с этим комбо называется от родительского frm.ShowDialog(); и в конструкторе формы ребенка я пытаюсь установить выбранный индекс комбо, основанный на записи Настройки

combo1.SelectedIndex = Settings.Default.NumberOfUsers; 

Однако , это НЕ работает, то есть комбо не вытягивает значение из настройки, но по умолчанию оно равно 0 в качестве выбранного индекса.

Кто-нибудь знает, где я ошибаюсь?

+0

Вы уверены, что настройки не сохраняются? Может быть, это просто назначение в combobox, которое не работает. Используйте отладчик для разрыва строки 'combo1.SelectedIndex = Settings.Default.NumberOfUsers' и проверьте, имеет ли значение« NumberOfUsers »правильное значение. – Timwi

+0

Когда я закрываю приложение, я открываю файл conf проекта, а поле Значение по-прежнему является значением по умолчанию. Что это значит? Проблема с сохранением в конце концов? – trnTash

ответ

0

Может быть, так:

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

Это не так, поскольку у меня есть пространство имен свойств в использовании оператора – trnTash

4

Я думаю, что вы не делаете какую-либо ошибку. Насколько я знаю, VS также регенерирует файл конфигурации во время сборки. Я бы попробовал его на тестовой машине.
Он будет хранить пользовательские настройки в AppData вашего пользователя (локальный или роуминг?) Под что-то вроде этого:

AppData \ [Local_or_Roaming] \ YourCompanyName \ yourprogram.exe_Url _ [...] \ 1.0.0.0 \ пользователь .config

Длина длинной папки в центре будет sg но я думаю, вы найдете это легко. Посмотрите этот файл и посмотрите, сохранит ли он новые значения или нет.

Я использую его во многих местах, и в производственной среде он работает хорошо. Если честно, на машине dev у меня никогда не было работы.

+0

Конечно, kofucii прав, вы тоже пропустили свойства. – Hudgi

+0

Не пропустил это, потому что у меня это в использовании оператора :) – trnTash

+0

Хорошо, это возможно. :) Что касается вашей проблемы, вы проверили ее в папке AppData? Как я уже говорил, настройки уровня пользователя не хранятся в файле exe.config. Там хранятся только настройки уровня приложения. – Hudgi

0

Вы вводите новое значение для NumberOfUsers в ComboBox или выбираете его из выпадающего списка?
Если вы введете значение SelectedIndex, это не изменится, поэтому никакое событие не будет запущено.

Также является ComboBox заселяется со значениями, идущих от 0 до 10 или у вас есть код для обработки ArgumentOutOfRangeExceptions

Смежные вопросы