PropertyGrid 多层折叠使用方法:
///子子元素
public class school
{
public string Address{set;get;}
public string Name{set;get;}
public string Sex{set;get;}
public override string ToString()
{
return Address+Name+Sex;
}
}
///子元素
public class SystemConfig
{
public string ConfigName { set; get; }
private school _school = new school();
[TypeConverter(typeof(ExpandableObjectConverter)),Category("学生")]
public school MySchool1
{
set { _school = value; }
get { return _school; }
}
///
public override string ToString()
{
return ConfigName + MySchool1;
}
}
/// root元素
public class attributes
{
[Category("学生")]
public string Ages { get; set; }
private SystemConfig _config = new SystemConfig();
[TypeConverter(typeof(ExpandableObjectConverter)), Category("地址")]
public SystemConfig config
{
set { _config = value; }
get { return _config; }
}
}
注意事项:
1.重写override 函数 返回当前类的member .
2.自定义类保证一定构造了. 否则该类不显示member
3.自定义类使用[typeconverte(typeof(expandableobjectconverter))] 进行类型转换
4.category("标识属于哪个root下") ,displayName("标识显示名称") defaultvalue...
5.自定义编辑框 EditorAttribute(typeof(PropertyGridRichText),typeof(System.Drawing.Design.UITypeEditor))
自定义类 class PropertyGridRichText : UITypeEditor 等等.
Demo地址