1)我用PropertyGrid显示一个对象属性,如何让显示的属性名为我自己定义的?比如说显示Name属性,PropertyGrid出现的是“名字”而不是“Name”2)PropertyGrid显示一个对象属性的时候,如果这个对象某个属性是我自己定义的数据类型,则PropertyGrid不会显示其成员,而是显示的灰色的。但是系统自带的Font却没有这个问题。找了半天,找了很多这方面的资料,就是没有我需要的……

解决方案 »

  1.   

    第二个问题解决,使用TypeConverter,自己扩展一个ExpandableObjectConverter 即可。百分留给第一题
      

  2.   

    2. 给类添加属性  [TypeConverter(typeof(TypeName))], 可以实现自定义的显示
    第一个就比较复杂了,你可以上code Project上找一找例子
      

  3.   

    第一个简单来说,就是你自己的类从 ICustomTypeDescriptor 派生,然后就可以返回任何东西了
      

  4.   

    谢谢!请问一下为什么我让属性编辑器编辑一个支持TypeConverter的对象修改属性后,然后再让他打开其他的对象,这个时候原来的对象的属性并没有被保存,而如果没有使用TypeConverter则没有这个问题?马上结贴
      

  5.   

    搞定!原来我给被属性编辑器修改的对象加上了TypeConvertor属性