В предыдущем
посте среди прочих способов сохранения настроек я упомянул класс
Settings. Однако написал я про него не очень много и как-то не очень внятно. Вряд ли по тому посту будет понятно насколько это хорошая штука :) Поэтому я решил рассказать про него поподробнее и на конкретном примере. Тем более, что в сети информация все больше общего характера – просто непонятно зачем этот класс нужен.
Примечание: проект я буду делать в Visual Studio 2008 Beta 2 установленной на Windows Server 2008 RC0. Принципиального отличия от VS2005 в данном случае нет. В обоих версиях студии способ работы с классом Settings одинаков.
Начнем с создания нового проекта. Будет это Windows Forms Application с одной формой (я покажу только как разработывается форма с настройками приложения):
Кидаем на форму несколько контролов, через которые и будут редактироваться наши настройки:
Собственно, ничего особенного тут нет. Я думаю справитесь :)
А теперь начинается самое интересное :) Начинаем использовать класс Settings. Для этого надо для каждого контрола проделать следующие шаги:
1. Выделить его. Переключиться на вкладку Properties и найти раздел ApplicationSettings.
2. В данном случае - для checkBox - нам нужно сохранять свойство Checked.
3 И жмем ссылку
new
Здесь можно ввести название переменной, в которой будет храниться состояние нашей настройки, значение по-умолчанию (True/False) и где она будет храниться (оставляем как есть).
4. А собственно и все :)
Ну и напоследок, посмотрим как это работает. В метод button1_Click пропишем добавим следующий код:
MessageBox.Show(Properties.Settings.Default.setting1.ToString());
И мы увидим, что всё работает :)
Ну и напоследок
Что делать, если необходимо добавить какую-либо проверку значений вводимых пользователем параметров или, например, осуществлять преобразование типов?
В этом случае придется немного пописать ручками :)
Добавим свойство с методами get/set через которое и будет осуществляться доступ к настройкам:
public string Setting3
{
get
{
return Properties.Settings.Default.setting3;
}
set
{
string tmp = value.ToLower();
Properties.Settings.Default.setting3 = tmp;
}
}
Свяжем его с соответствующим свойством у контрола на форме:
this.textBox1.DataBindings.Add("Text", this, "Setting3");
В данном случае, первый параметр - это имя свойства у контрола
которое будет связываться. Второй параметр - ссылка на объект где находится свойство
с которым будет производиться связывание. Ну и третий параметр - это, соответственно, имя свойсва.
И всё!
Дальше всё будет работать само.
Пожалуй на этом и закончу.