Как сохранить пользовательские настройки программно?

У меня есть кнопка, которая открывает палитру цветов Windows, а затем назначает выбор цвета для выбранного элемента в какой-то виртуальной студии. Элемент сначала выбирается пользователем по щелчку мыши, и на основе идентификатора элемента присваивается цвет. Таким образом, каждый раз, когда нажимается кнопка, цвет одного и того же или другого элемента изменяется. Идентификатор элемента получается из делегата, который срабатывает, если щелкнуть мышью какой-либо элемент. Код для кнопки установки цвета выглядит так:

  private void Btn_Choose_Color_Click(object sender, RoutedEventArgs e)
        {

            uint id_selected = (uint)selected_element; //get id of selected element from clickintocallback



            //open windows color dialog
            System.Windows.Forms.ColorDialog my_dialog = new System.Windows.Forms.ColorDialog();
            my_dialog.ShowDialog();

            //get the color from windows dialog
            int red = my_dialog.Color.R;
            int green = my_dialog.Color.G;
            int blue = my_dialog.Color.B;

            //create cinector color object and pass rgb values from windows dialog
            ByteRGBColor desired_color = new ByteRGBColor((byte)red, (byte)green, (byte)blue); //assign color statically

            for (int i = 0; i < all_color_elements_in_loaded_studio.Count; i++)
            {
                uint id_current = all_color_elements_in_loaded_studio.ElementAt(0).colorElementID; //get id of current element in a loop

                if(id_current == id_selected) //compare selected and current element
                {
                    //all_color_elements_in_loaded_studio.ElementAt(i).colorElementColor = test_color; //set the test color
                    instance.SetStudioColorElement(id_current, desired_color); //assign the color to the element
                    break;
                }
            }




            //after we choose a color
            Btn_Pick_Element_Clicked = false;
            Btn_Choose_Color.IsEnabled = false;
        }

Теперь мой вопрос заключается в том, как сохранить идентификатор элемента и его цвет после назначения в пользовательских настройках? Я понимаю, что могу зайти в Свойства-> Настройки и вручную определить там настройки пользователя, но здесь это нужно сделать как-то программно. И потом также, как загрузить эти настройки обратно?

Буду признателен за любую помощь?

2 ответа

Решение

Задавать

Properties.Settings.Default.myColor = Color.AliceBlue;

Получить

this.BackColor = Properties.Settings.Default.myColor;

Сохранить

Если вы хотите сохранить изменения пользовательских настроек между сеансами приложения, вызовите метод Save, как показано в следующем коде:

Properties.Settings.Default.Save();

Ссылка

Взгляните на эту статью, особенно на раздел " Сохранение настроек пользователя во время выполнения ".

Чтобы этот ответ не был просто ссылкой. Вот соответствующий раздел воспроизводится:

Сохранение настроек пользователя во время выполнения

Параметры области приложения доступны только для чтения и могут быть изменены только во время разработки или путем изменения файла.exe.config между сеансами приложения. Однако настройки области действия пользователя могут быть записаны во время выполнения, так же как вы изменили бы любое значение свойства. Новое значение сохраняется в течение сеанса приложения. Вы можете сохранить изменения в пользовательских настройках между сеансами приложения, вызвав Settings.Save метод. Эти настройки сохраняются в файле User.config. Чтобы записать и сохранить пользовательские настройки во время выполнения Откройте пользовательские настройки и присвойте им новое значение, как показано в следующем примере:

Properties.Settings.Default.myColor = Color.AliceBlue;

Если вы хотите сохранить изменения пользовательских настроек между сеансами приложения, вызовите метод Save, как показано в следующем коде:

Properties.Settings.Default.Save();
Другие вопросы по тегам