自定义 UserControl - 设计时支持控件重绘

Custom UserControl - Design-Time support for control repainting

我已经创建了我的自定义 UserControl,其中包含一些自定义属性。例如:

[Description("Example Description"),Category("CustomSettings"),DefaultValue("Transmedicom")]
public string DatabaseAddress
{
    get; set;
}

一切正常。我可以在代码和 design-time 中更改 custom property

我现在正在寻找(但找不到任何东西)的是:当我的自定义 属性 在设计时更改时,我如何在设计时重绘(重新创建)我的 UserControl .

假设 DatabaseName 将更改为 localhost UserControl 将在我的 UserControl 上添加和显示一些标签。在 Design-Time.

工作很重要

没什么特别的。您只需将文本设置为 属性 setter 内的 Label。那应该更新 UI.

private string databaseAddress;
[Description("Example Description"), Category("CustomSettings"), DefaultValue("Transmedicom")]
public string DatabaseAddress
{
    get { return databaseAddress; }
    set 
    { 
        databaseAddress = value;
        yourLabel.Text = value;//Set value to Label or whatever
    }
}

试试这个

private string _databaseAddress = "localHost";
[Description("Example Description"), Category("CustomSettings"), DefaultValue("Transmedicom")]
public string DatabaseAddress
{
    get
    {
        return _databaseAddress;
    } 
    set 
    {
        if(!string.IsNullOrEmpty(value))
        {
            _databaseAddress = value;
            lblAddress.Text = value;
            lblAddress.Invalidate();
        }
    }
}

前面两个答案都是正确的。
我只想补充一点,用户控件甚至可以在设计时使用 Layout 事件对调整大小做出反应。