如何在应用程序设置中保留自定义用户控件属性?

时间:2019-04-26 12:15:27

标签: c# winforms

我创建了包含3个元素的简单用户控件:

2个单选按钮和表格布局面板,也称为“是”或“否”控件。

我创建了自定义属性布尔值“ Value”,该值随选中的单选按钮而变化。

更新1:我添加了该控件以将属性“值”形成表单并将其绑定到设置,并在控件代码中添加了逻辑来确定哪个单选按钮,但应在保存设置并重新加载表单后检查两个单选按钮。 / p>

如何以最少的努力实现这种效果。

代码下方:

public partial class YesOrNoControl : UserControl
{
    public YesOrNoControl()
    {
        InitializeComponent();
        LoadValue();
    }

    [Description("Sets the value of Control"), Category("Behavior"), DefaultValue(false), Browsable(true)]
    public bool Value { get; set; }

    void LoadValue()
    {
        if (Value)
        {
            YesButton.Checked = true;
        }
        else
        {
            NoButton.Checked = true;
        }
    }

    private void YesButton_Click(object sender, EventArgs e)
    {
        Value = true;
    }

    private void NoButton_Click(object sender, EventArgs e)
    {
        Value = false;
    }
}

2 个答案:

答案 0 :(得分:0)

您可以在IDE中(在项目设置下)定义应用程序设置。 然后,您可以使用Properties.Settings名称空间来操作设置。

设置会在运行时自动加载,您可以通过调用Save()方法保存设置。

更多链接:Using Application Settings and User Settings

Applications Settings for WinForms

答案 1 :(得分:0)

我设法解决了我的问题。 我修改了属性“值”以从应用程序设置(为此专门创建)中获取值,并将值设置为相同的应用程序设置。 在setter的结尾,我添加了应用程序设置的保存。 它解决了主要问题,但这是一种解决方法,而不是问题的真正答案。 在修改后的属性代码下方:

public bool Value
{
    get
    {
        return Properties.Settings.Default.YesOrNoControlValue;
    }
    set
    {
        Properties.Settings.Default["YesOrNoControlValue"] = value;
        Properties.Settings.Default.Save();
    }
}