如何以编程方式保存用户设置?

时间:2015-07-31 14:34:48

标签: c# .net settings

我有一个按钮,打开窗口颜色托盘,然后在某个虚拟工作室中为所选元素指定选择颜色。用户首先在鼠标单击时选择元素,并根据元素ID分配颜色。因此,每次单击按钮时,都会更改相同或不同元素的颜色。元素ID是从代理获取的,如果鼠标单击某个元素,则会触发该代理。颜色设置按钮的代码如下:

  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;
        }

现在,我的问题是如何在分配到用户设置后保存元素ID及其颜色?我知道我可以转到Properties-&gt; Settings并在那里手动定义用户设置,但这里必须以某种方式以编程方式完成。然后,如何加载这些设置?

我很感激你的帮助吗?

2 个答案:

答案 0 :(得分:8)

设置

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

获取

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

保存

如果要在应用程序会话之间保留对用户设置的更改,请调用Save方法,如以下代码所示:

Properties.Settings.Default.Save();

Reference

答案 1 :(得分:3)

查看this article,尤其是在运行时保存用户设置部分。

让这个答案不只是一个链接。以下是相关部分的转载:

在运行时保存用户设置

应用程序范围设置是只读的,只能在设计时更改或在应用程序会话之间更改.exe.config文件。但是,用户范围设置可以在运行时写入,就像更改任何属性值一样。新值在应用程序会话期间保持不变。您可以通过调用Settings.Save方法在应用程序会话之间保留对用户设置的更改。这些设置保存在User.config文件中。 在运行时编写和保留用户设置 访问用户设置并为其分配新值,如以下示例所示:

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

如果要在应用程序会话之间保留对用户设置的更改,请调用Save方法,如以下代码所示:

Properties.Settings.Default.Save();