C# 自定义控件(显示其他对象的属性)

C# 自定义控件(显示其他对象的属性),c#,visual-studio-2010,visual-c#-express-2010,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

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

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
的属性一起显示?

如果希望属性显示在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装饰自定义对象,这将显示类中的属性


有一些属性可以设置displayname、category和默认值等。更多信息可以在这里找到:

它是否声明为
publicMyProperties{get;set;}
,因为它不会编译?它需要通过
public MyProperties MyProperties{get;set;}
。很抱歉,这是一个打字错误。我纠正了它。它应该是公共myProperties GridProp{get;set;}