google TypeConverterAttribute http://blog.csdn.net/aqimide/article/details/6161470
给你的属性添加特性类,如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子属性了
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); // <--逗号分割 } }
http://blog.csdn.net/aqimide/article/details/6161470
[Browsable(true),Category("Appearance"),Description("最大尺寸")]
public Size MaxSize { get; set; }编译之后,在工具栏拖出BarButton按钮到窗体上,就可在属性窗体上找到MaxSize属性了
其实,你的添加的属性是什么类型,在属性窗体自然会显示出是否有子属性。将MaxSize换成Padding类型,属性窗体自然出现All,Left,Top,Bottom,Right子属性了
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); // <--逗号分割
}
}