如何在winforms设计器中公开用户控件的整个子控件
Posted
技术标签:
【中文标题】如何在winforms设计器中公开用户控件的整个子控件【英文标题】:How to expose whole sub control of usercontrol at winforms designer 【发布时间】:2012-10-08 10:12:20 【问题描述】:例如 我想创建一个包含标签和文本框的用户控件(Windows 窗体)。 我想将两个子控件公开为属性,这样我就可以 在客户端表单设计器中设置子控件的属性。
所以代码可能是这样的:
公共部分类 LabelTextbox : UserControl 公共标签文本框() 初始化组件(); [ 类别(“外观”), 可浏览(真), 描述(“内部标签”) ] 公共 DevComponents.DotNetBar.LabelX LabelPart 得到 返回 this.labelx; 放 this.labelx = 值; [ 类别(“外观”), 可浏览(真), 描述(“内部文本框”) ] 公共文本框 TextBoxPart 得到 返回 this.textboxx; 放 this.textboxx = 值;然后我可以在设计器中看到它,它看起来像:
但是当我在设计器中设置用户控件的内部标签属性时, 它不能在 Designer.cs 中制作关系代码。 也就是说客户端设置没有保存。
那么我该如何解决这个问题。
顺便说一句,我来自 CN,我的英语很差。任何人都可以回答我。
【问题讨论】:
【参考方案1】:使用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设计器中公开用户控件的整个子控件的主要内容,如果未能解决你的问题,请参考以下文章
如何停止 Visual Studio 为设计器中的控件生成属性设置?