【问题标题】:How to expose whole sub control of usercontrol at winforms designer如何在winforms设计器中公开用户控件的整个子控件
【发布时间】: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,我的英语很差。任何人都可以回答我。

【问题讨论】:

    标签: winforms user-controls


    【解决方案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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      • 2010-11-05
      • 2010-10-30
      • 2012-03-27
      • 1970-01-01
      • 2010-10-19
      相关资源
      最近更新 更多