2012-06-05 2 views
4

Я пытаюсь сохранить два пользовательских значения (SliderWidth и SliderHeight). Я хочу сделать это с настройками параметров Visual Studio.Свойства. Настройки не сохраняются

The Visual Studio option settings

Когда я отладка это с этим кодом:

public void Test(int value) 
    { 
     Properties.Settings settings = Properties.Settings.Default; 
     settings.SliderWidth = value; 
     settings.Save(); 
    } 

Значение не изменяется (после окончания программы).

Что случилось?

+0

Пользовательские настройки сохраняются в файле user.config, поэтому вы не увидите изменений, просмотрев файл app.config, если это то, что вы делаете. –

+0

@ ErenErsönmez hm спасибо, но где именно я могу найти файл? в моей папке bin \ debug это не – David

+0

, она действительно скрыта где-то в папке% appdata%. Вы можете искать и находить user.config в папке, специфичной для вашего приложения. –

ответ

2

Это определенно работает. Попробуйте следующее:

public void Test(int value) 
{ 
    Properties.Settings settings = Properties.Settings.Default; 

    MessageBox.Show("Last SliderWidth = " + settings.SliderWidth.ToString()); 

    settings.SliderWidth = value; 
    settings.Save(); 
} 

Но сохраненное значение не будет отображаться в окне конструктора, которое вы показываете на экране. Это начальные значения по умолчанию.

+0

Ларс: Итак, если я отлаживаю свое приложение, я ТОЛЬКО вижу начальные значения, жестко закодированные на моей странице настроек (как показано на снимке экрана OP). Но при развертывании моего приложения он будет извлекать и сохранять настройки пользователя. Верный? – jp2code

+0

@ jp2code Не совсем (если я правильно вас понимаю). Когда вы запускаете свою программу в режиме разработки, она получает значение из файла настроек, но если нет значения, * then *, он будет извлекать значение по умолчанию, которое было установлено в этой форме настройки на рисунке выше. – LarsTech

+0

Мое приложение должно хранить последнюю открытую форму (перечислено как целое число) и верхнюю, левую, ширину и высоту формы. После сохранения значений я вызываю 'Properties.Settings.Default.Save();' но ничего не меняется, когда я открываю приложение для чтения в значениях. – jp2code

0

Если ваш AssemblyInfo.cs имеет * в версии Assembly, он каждый раз сбрасывает этот файл. Попробуйте жесткое кодирование последнего номера. Очистите и перестройте все, и он должен работать нормально.

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