例如
我想创建一个包含标签和文本框的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/

10-13 06:54