我已经为它创建了带有一些自定义属性的自定义UserControl。例如:
[Description("Example Description"),Category("CustomSettings"),DefaultValue("Transmedicom")]
public string DatabaseAddress
{
get; set;
}一切都很好。我可以在代码和custom property中更改design-time。
现在我正在寻找(但什么都找不到):当我的自定义属性在设计时发生变化时,我如何在设计时重新绘制(反应)我的UserControl。
假设何时将DatabaseName更改为localhost,UserControl将在my UserControl上添加和显示一些标签。在Design-Time中工作很重要。
发布于 2015-08-14 07:38:03
那里没什么特别的。您只需在属性设置器中将文本设置为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
}
}发布于 2015-08-14 07:39:19
尝尝这个
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();
}
}
}发布于 2015-08-14 07:42:20
前面的两个答案都是正确的。
我只想补充一点,用户控件甚至可以在设计期间使用Layout事件对调整大小做出反应。
https://stackoverflow.com/questions/32004225
复制相似问题