自定义控件(显示另一个对象的属性)

时间:2012-11-25 21:40:28

标签: c# visual-studio-2010 visual-c#-express-2010

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

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的属性?

1 个答案:

答案 0 :(得分: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来装饰自定义对象,这将在类中显示正确的对象。

enter image description here

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