c# 如何使自建UserControl中的子控件可以在设计模式Design Mode中被访问,设置,添加孙控件
- Assembly 添加 Windows.Design.dll
- 自建的控件ScenarioContainer 如下:
[Designer(typeof(OuterControlDesigner))]
public partial class ScenarioContainer : UserControl
{
public ScenarioContainer()
{
InitializeComponent();
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public GroupBox GroupBoxContent => gbContent;
}
注意gbContent是我们添加在UserControl中的一个GroupBox, 随后我们新建了属性 “GroupBoxContent” 将gbContent暴露出来,同时修饰为”DesignerSerializationVisibility(DesignerSerializationVisibility.Content)”, 这样在Desinger中,用户可以从外部点击到这个GroupBox
注意OuterControlDesigner是 我们自建的Designer
代码如下:
public class OuterControlDesigner:ControlDesigner
{
public override void Initialize(IComponent component)
{
base.Initialize(component);
this.EnableDesignMode(((ScenarioContainer)this.Control).GroupBoxContent, "GroupBoxContent");
}
}
之后我们在Form中添加控件ScenarioContainer 后可以看到控件ScenarioContainer 的GroupBoxContent这个子控件也被Designer暴露出来了,我们于是可以把其他控件添加到GroupBoxContent中去。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能