自定义用户控件-设计时支持控件重新绘制
本文关键字:控件 新绘制 绘制 用户 自定义 支持 | 更新日期: 2023-09-27 18:07:50
我已经创建了带有一些自定义属性的自定义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
事件对调整大小做出反应。