2

如何让另一个控件的属性显示在属性窗口中。例如,如果我有

public class MyClass : UserControl
{
    public MyClass(){}
    public bool Visible{get;set}// Property of MyClass

    public MyProperties GridProp {get;set;}// Tried this but does not show the properties 
                                 //of MyProperties class

}

public class MyProperties
{
    public MyProperties() { }
    public bool Visible { get; set; }
    public Color Color { get; set; }
}

如何让MyProperties属性与 的属性一起显示MyClass

4

1 回答 1

2

如果您希望您的属性显示在 VS 属性窗口中,您必须在 qestion 中为属性添加一些属性。

public class MyControl : Control
{
    public MyControl()
    {
        MyObject = new MyObject();
    }

    [Category("MyControl")]
    [Description("My Property Description")]
    [TypeConverterAttribute(typeof(ExpandableObjectConverter))]
    public MyObject MyObject { get; set; }
}


public class MyObject
{
    public string MyProperty { get; set; }
}

您必须使用 ExpandableObjectConverter Typeconverter 装饰您的自定义对象,这将显示类中的属性。

在此处输入图像描述

有一些属性可以设置显示名称、类别和默认值等内容。更多信息可以在这里找到:http: //msdn.microsoft.com/en-us/library/aa302326.aspx

于 2012-11-25T22:42:01.307 回答