解决方案 »

  1.   

    .net framewotk是开源的。你可以看看.net framewotk源代码中,你关心的这两个属性分别有什么Attribute定义。
      

  2.   

    google TypeConverterAttribute
    http://blog.csdn.net/aqimide/article/details/6161470
      

  3.   

    给你的属性添加特性类,如Browsable是否在属性窗体显示,Category属性在窗体的分类,有外观(Appearance)、行为(Behavior)、布局(Layout)、数据(Data)、操作(Action)、键盘(Key)和鼠标(Mouse)等,Description属性的描述。举个例子,给BarButton按钮控件添加如下MaxSize属性
    [Browsable(true),Category("Appearance"),Description("最大尺寸")]
    public Size MaxSize { get; set; }编译之后,在工具栏拖出BarButton按钮到窗体上,就可在属性窗体上找到MaxSize属性了
    其实,你的添加的属性是什么类型,在属性窗体自然会显示出是否有子属性。将MaxSize换成Padding类型,属性窗体自然出现All,Left,Top,Bottom,Right子属性了
      

  4.   


    TypeConverter(typeof(ExpandableObjectConverter))]   //<---可展开
    public struct BackgroundGradientArea1
    {
        public int Left { get; set; }
        public int Right { get; set; }
        public int Top { get; set; }
        public int Bottom { get; set; }    public override string ToString()
        {
            return string.Format("{0},{1},{2},{3}", Left, Right, Top, Bottom);  // <--逗号分割
        }
    }