【问题标题】:How to save user settings programmatically?如何以编程方式保存用户设置?
【发布时间】:2015-10-23 06:53:52
【问题描述】:

我有一个按钮,可以打开 Windows 调色板,然后将选择颜色分配给某个虚拟工作室中的选定元素。用户首先通过鼠标单击选择元素,然后根据元素 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->Settings 并在那里手动定义用户设置,但这里必须以某种方式以编程方式完成。还有,如何重新加载这些设置?

【问题讨论】:

标签: c# .net settings


【解决方案1】:

设置

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

获取

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

保存

如果要在应用程序会话之间对用户设置的更改进行持久化,请调用 Save 方法,如下代码所示:

Properties.Settings.Default.Save();

Reference

【讨论】:

  • 需要 .Save() 调用。谢谢
【解决方案2】:

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

得到这个答案不仅仅是一个链接。以下是相关部分转载:

在运行时保存用户设置

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

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

如果您想在应用程序会话之间对用户设置的更改进行持久化,请调用 Save 方法,如下代码所示:

Properties.Settings.Default.Save();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多