5

例如,我想创建一个包含标签和文本框的用户控件(Windows 窗体)。我想将两个子控件公开为属性,以便我可以在客户端表单设计器中设置子控件的属性。

所以代码可能是这样的:

公共部分类 LabelTextbox : UserControl
    {
        公共标签文本框()
        {
            初始化组件();
        }

        [
           类别(“外观”),
           可浏览(真),
           描述(“内部标签”)
        ]
        公共 DevComponents.DotNetBar.LabelX LabelPart
        {
            得到
            {
                返回 this.labelx;
            }

            放
            {
                this.labelx = 值;
            }
        }


        [
           类别(“外观”),
           可浏览(真),
           描述(“内部文本框”)
        ]
        公共文本框 TextBoxPart
        {
            得到
            {
                返回 this.textboxx;
            }

            放
            {
                this.textboxx = 值;
            }
        }
    }

然后我可以在设计器中看到它,它看起来像:

在此处输入图像描述

但是当我在设计器中设置用户控件的内部标签属性时,它无法在设计器中创建关系代码。也就是说客户端设置没有被保存。

那么我该如何解决这个问题。

顺便说一句,我来自 CN,我的英语很差。任何人都可以回答我。

4

1 回答 1

6

使用 Attribute装饰您的子控件的DesignerSerializationVisibility属性:

[
   Category("Appearance"),
   Browsable(true),
   Description("innerLabel"),
   DesignerSerializationVisibility(DesignerSerializationVisibility.Content)  //<-- here
]
public DevComponents.DotNetBar.LabelX LabelPart {
    get {
        return this.labelx;
    }
    set {
        this.labelx = value;
    }
}
于 2012-10-18T03:14:52.973 回答