Информационый портал Windows 7

У нас вы можете скачать драйвера и программы, найти красивые темы и обои, учебные материалы, а также получить консультации и многое другое.

  • главная
  • контакты
  • карта сайта
 
Программирование » Уроки по C# для начинающих »

Урок 5. Сохранение настроек приложения в языке C#.

 
   Для начала добавим в файл FormOS7ru.cs следующие строки:
using System.Xml;
using System.Xml.Linq;
using System.Xml.Resolvers;
using System.Xml.Schema;
using System.Xml.Serialization;
using System.Xml.XPath;
using System.Xml.Xsl;
using System.IO;
using System.IO.Compression;
using System.IO.IsolatedStorage;
using System.IO.MemoryMappedFiles;
using System.IO.Pipes;
using System.IO.Ports;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.OleDb;
using System.Data.ProviderBase;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data.SqlTypes;

   Это нам немного поможет в дальнейшей работе.

   Теперь найдём в обозревателе решений файл с названием DefaultSettings.settings после двойного щелчка левой кнопкой мыши на нём, нам откроется окно настроек (рис. 5.1).

Урок 5. Сохранение настроек приложения в языке C#.

Рис. 5.1. Окно настроек файла DefaultSettings.settings.


   Из рисунка видно, что я уже ввёл два параметра: colorFona (цвет фона) и colorText (цвет текста). В поле «Тип» нужно указать System.Drawing.Color. В поле «Область» указываем «приложение». Программа сохранит эти настройки в папке с исполняемым файлом, но запретит нам изменять их в процессе работы. Что, в данном случае, очень полезно: будем использовать его для хранения «настроек производителя».

   Далее в поле «Значение» указываем соответствующие значения цветов. У меня они совпадают со значениями, указанными для приложения по умолчанию в системе.

   Теперь откроем окно настроек файла Settings.settings и введём такие же два параметра, но в поле «Область» укажем: «Пользователь» (рис. 5.2).

Урок 5. Сохранение настроек приложения в языке C#.

Рис. 5.2. Окно настроек файла Settings.settings.


   Эти настройки будут сохраняться в папке пользователя (C:\Users\\AppData\Local\\...).

   Естественно, что если нужный файл не будет найден, произойдёт ошибка. Но об этом позднее.

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

   Поэтому я вывел на экран значения параметра InputLanguageCollection:
InputLanguageCollection ilc = InputLanguage.InstalledInputLanguages;
MessageBox.Show(ilc[0].LayoutName+” “+ilc[1].LayoutName);

   Как вы, наверное, догадались, в результате я получил следующее сообщение:
США Русская

   Поэтому мне пришлось немного изменить функцию FormOS7ru, которая инициализирует форму (рис. 5.3).

Урок 5. Сохранение настроек приложения в языке C#.

Рис. 5.3. Изменённая функция FormOS7ru.


   Как видно из рисунка, сначала мы получаем список языков, установленных в системе. Затем, если язык ввода по умолчанию не тот, который нам нужен, мы перепроверяем список и находим нужный язык:
if(InputLanguage.DefaultInputLanguage.LayoutName!="Русская")    
   for (int i = 0; i < icount; i++)
   {
      if (ilc[i].LayoutName == "Русская")
      {
         ilang = i; i = icount;
      }
   }

   После этого устанавливаем его в качестве текущего языка ввода:
InputLanguage.CurrentInputLanguage = ilc[ilang];


   Теперь добавим функцию SettingsSave() (рис. 5.4).

Урок 5. Сохранение настроек приложения в языке C#.

Рис. 5.4. Функция SettingsSave().


   Обратите внимание на строку
Properties.Settings.Default.Save();


   эта функция сохраняет текущие значения переменных в файл настроек.

   Теперь позаботимся о возможности загрузить текущие настройки (рис. 5.5).

Урок 5. Сохранение настроек приложения в языке C#.

Рис. 5.5. Функция SettingsLoad().


   Однако, если файла настроек не существует, программа выдаст ошибку. Мы перехватываем исключение при помощи блока try…catch и просто создаём файл настроек, если его не существует (вызываем функцию SettingsSave()).

   Теперь позаботимся о возможности вернуть настройки производителя (рис. 5.6).

Урок 5. Сохранение настроек приложения в языке C#.

Рис. 5.6. Функция DefSettingsLoad().


   Естественно, после загрузки настроек нам придётся сохранить их в качестве текущих (вызываем функцию SettingsSave()).

   Есть ещё один очень удобный способ хранения настроек – при помощи xml-файла. Будем хранить в нём пользовательские настройки по умолчанию. Сначала опишем функцию сохранения настроек (рис. 5.7).

Урок 5. Сохранение настроек приложения в языке C#.

Рис. 5.7. Функция MyDefSetSave().


   В языке C# есть простой способ сохранения данных таблицы DataTable в файл xml.

   Просто создаём таблицу с именем «MyDefSet»
DataTable dt = new DataTable("MyDefSet");


   Затем, добавляем столбец:
dt.Columns.Add("Nastroika");


   Теперь добавляем строки со значениями цвета фона и цвета текста, попутно сохраняем эти же параметры в качестве текущих настроек:
dt.Rows.Add(textBoxConsole.BackColor); Properties.Settings.Default.colorFona = textBoxConsole.BackColor;
dt.Rows.Add(textBoxConsole.ForeColor); Properties.Settings.Default.colorText = textBoxConsole.ForeColor;
Properties.Settings.Default.Save();


   И, наконец, сохраняем данные в файл xml:
dt.WriteXml(strCurDir_Gpr+strMyDefSetFile_Gpr);


   здесь:
private string strCurDir_Gpr = System.Environment.CurrentDirectory;//Получаем корневой каталог программы
private string strMyDefSetFile_Gpr = "\\Properties\\mydefset.settings";//Имя файла, который содержит настройки по умолчанию


   обратите внимание, что расширение файла не имеет значения. Он всё равно будет записан, как обычный xml.

   Теперь опишем функцию загрузки настроек по умолчанию (рис. 5.8).

Урок 5. Сохранение настроек приложения в языке C#.

Рис. 5.8. Функция MyDefSetLoad().


   Обращаю ваше внимание, что записать данные из xml в таблицу можно только после того, как будет создана основа (набор столбцов с их правильными названиями – названия должны соответствовать тем, которые были при сохранении).

   Теперь опишем функцию ConvertColor (рис. 5.9).

Урок 5. Сохранение настроек приложения в языке C#.

Рис. 5.9. Функция ConvertColor.


   Трудность в том, что данные в xml сохраняются в виде стоки, поэтому мы используем функцию, в которой описываем разбор данных строки. Если открыть получившийся файл, мы увидим:
<?xml version="1.0" standalone="yes"?>
<DocumentElement>
   <MyDefSet>
      <Nastroika>Color [Control]</Nastroika>
   </MyDefSet>
   <MyDefSet>
      <Nastroika>Color [Black]</Nastroika>
   </MyDefSet>
</DocumentElement>


   Причём в таблицу будут помещены данные:
Color [Control]
Color [Black]


   Если изменить цвет, получится:
Color [A=<значение1>, R=<значение2>, G=<значение3>, B=<значение4>]


   Отсюда ясно, почему функция ConvertColor выглядит именно так. Если не ясно, перечитайте предыдущий урок.

   Теперь добавляем в функцию ConsoleKeyEnter вызов команды изменения настроек (рис. 5.10).

Урок 5. Сохранение настроек приложения в языке C#.

Рис. 5.10. Функция ConsoleKeyEnter с изменениями.


   Естественно, сразу же нужно добавить новую команду в список:
private string[] arrsrtVopros_Gpr = { "вопрос", "выход", "консоль", "настройки" };


   Теперь добавим функцию изменения настроек (рис. 5.11).

Урок 5. Сохранение настроек приложения в языке C#.

Рис. 5.11. Функция ConsoleKeyEnter_Nastroiki.


   Создадим массив для хранения списка команд:
private string[] arrsrtVoprosNastroiki_Gpr = { "вопрос", "выход", "умолчания", "отмена", "сохранить" };


   Теперь добавим функцию для изменения настроек по умолчанию (рис. 5.12).

Урок 5. Сохранение настроек приложения в языке C#.

Рис. 5.12. Функция ConsoleKeyEnter_Nastroiki_Umolchania.


   И ещё один массив для хранения списка команд:
private string[] arrsrtVoprosNastroikiUmolchania_Gpr = { "вернуть", "вопрос", "выход", "загрузить", "сохранить", "отмена" };


   Команду «отмена» добавим и в остальные списки. Она позволит нам выходить сразу к началу.

   Теперь запускаем и наслаждаемся возможностью изменять и сохранять настройки.

   Исходники можно скачать здесь:Вы не можете скачивать файлы с нашего сервера.





     Жду отзывов и предложений

   К списку статей                  Предыдущий уок                  следующий урок

   DiamondTigeR

   
Урок 5. Сохранение настроек приложения в языке C#.



Автор: d.tiger. Дата: 12-03-2012, 20:57

Просмотров: 6008

В избранное:

Уважаемый посетитель, для доступа к ресурсам сайта OS-7.RU, а также для скачивания материалов - Вам необходимо зарегистрироваться либо войти под своим именем.







 (голосов: 0)
Комментарии (0) Распечатать