Сохранения пользовательских настроек и настроек приложения в WinForms на C#

До использования .NET Framework, настройки приложения сохранялись в INI-файлах и реестре Windows. Но в .NET Framework появились гораздо более простые способы работы с XML-файлами. Этот файл называется <имя сборки>.exe.config и находится внутри папки приложения. Такой способ лучше, потому что, когда приложение будет деинсталированно или удалено, конечному пользователю не придется беспокоиться об оставшихся ключах реестра или INI файлов в каталоге Windows.

Каждая настройка имеет четыре свойства: имя, тип, значение и область видимости. Тип может быть типом данных или объектом. Настройка может быть доступна пользователю или приложению. Основное различие между ними заключается в том, что настройки с областью видимости на уровне приложения будут доступны только для чтения во время выполнения, в то время как настройки с пользовательской областью видимости доступны и для чтения и для записи во время выполнения программы.

Создание новых настроек

Чтобы приступить к созданию новых настроек, в обозревателе решений (Solution Explorer) нужно щелкнуть правой кнопкой мыши на файле проекта, выбрать Свойства (Properties), или расширить уже существующий файл с настройками, дважды щелкнув на файле .setting. Затем нужно ввести имя, тип, область видимости и значение для каждого параметра.

image

Манипулирование настроек

Чтобы прочитать и сохранить значение параметра в C#, нужно использовать простсранство имён Properties. В следующем примере есть TextBox и две кнопки, называемые newValueTextBox, displayButton и saveButton соответственно.

        private void displayButton_Click(object sender, EventArgs e)
        {
            //get the value of SavedSetting1 which is a string
            string currentVal = Properties.Settings.Default.SavedSetting1;

            MessageBox.Show("The value of SavedSetting1 is '" + currentVal + "'");
        }

        private void saveButton_Click(object sender, EventArgs e)
        {
            //set the new value of SavedSetting1
            Properties.Settings.Default.SavedSetting1 = newValueTextBox.Text;

            //apply the changes to the settings file
            Properties.Settings.Default.Save();
        }

Статья написана по материалам этого англоязычного поста.

Полезная статья? Их будет больше, если вы поддержите меня!

https://money.yandex.ru/embed/small.xml?account=410011399843532&quickpay=small&yamoney-payment-type=on&button-text=06&button-size=l&button-color=orange&targets=%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D1%8E+%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82+lexpenz.com&default-sum=50&successURL=

Архив комментариев

5 комментариев из прежней версии блога. Архив закрыт для новых ответов.

  1. Статья отстой

  2. Статья норм, я тупой мудак :(

  3. Дмитрий

    Я тоже мудак! +1

  4. Самый простой способ, который приходит в голову — сбросить данные в файл, а при запуске приложения считывать необходимые данные из файла. Второй вариант — работать с базой данных и хранить настройки там.

    1. lexpenzавтор

      Ludozhka, вот этот самый простой способ и описан в статье :) Только без создания лишних сущностей.