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

时间:2015-08-14 07:07:55

标签: c# .net winforms custom-controls visual-studio-2015

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

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

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

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

让我们说DatabaseName将更改为localhost UserControl时,会在我的UserControl上添加并显示一些标签。在Design-Time工作非常重要。

3 个答案:

答案 0 :(得分:1)

没什么特别的。您只需在属性设置器中将文本设置为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
    }
}

答案 1 :(得分:1)

试试这个

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

答案 2 :(得分:1)

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