繁体   English   中英

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

[英]How to persist custom user control property in application settings?

我创建了由 3 个元素组成的简单用户控件:

2 个单选按钮和表格布局面板又名是或否控件。

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

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

我怎样才能以最少的努力达到这种效果。

代码下方:

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

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

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

更多链接: 使用应用程序设置和用户设置

WinForms 的应用程序设置

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM