例如
我想创建一个包含标签和文本框的usercontrol(windows窗体)。
我想将两个子控件公开为property,以便我可以
在客户端窗体设计器中设置子控件的属性。
所以代码可能像这样:
公共(public)局部类LabelTextbox:UserControl
{
公共(public)LabelTextbox()
{
InitializeComponent();
}
[
类别(“外观”),
可浏览(true),
说明(“innerLabel”)
]
公共(public)DevComponents.DotNetBar.LabelX LabelPart
{
得到
{
返回this.labelx;
}
放
{
this.labelx =值;
}
}
[
类别(“外观”),
可浏览(true),
说明(“InnerTextbox”)
]
公共(public)TextBox TextBoxPart
{
得到
{
返回this.textboxx;
}
放
{
this.textboxx =值;
}
}
}
然后我可以在设计器中看到它,它看起来像:
但是当我在设计器中设置usercontrol的内部标签属性时,
它不能在designer.cs中创建关系代码。
也就是说,客户端设置未保存。
所以我该如何解决这个问题。
顺便说一句,我来自CN,我的英语不好。任何人都可以回答我。
最佳答案
使用 DesignerSerializationVisibility
属性装饰子控件的属性:
[
Category("Appearance"),
Browsable(true),
Description("innerLabel"),
DesignerSerializationVisibility(DesignerSerializationVisibility.Content) //<-- here
]
public DevComponents.DotNetBar.LabelX LabelPart {
get {
return this.labelx;
}
set {
this.labelx = value;
}
}
关于winforms - 如何在Winforms Designer中公开UserControl的整个子控件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12946418/