都放一天了,没有帮我。快急使了。

解决方案 »

  1.   

    大体思路入下:
    写一个中文显示属性类A
    写一个继承于PropertyDescriptor的类B并完成DisplayName函数重载完成读取中文显示属性A的名称
    写一个所有需要显示中文类的基类C并继承ICustomTypeDescriptor接口,重载GetProperties(Attribute[] attributes)和GetProperties()函数。这两个函数要完成的功能是将返回的PropertyDescriptorCollection中的元素全部替换成类B的实例这样对于需要显示的对象D
    {
        int s;
        [A(<显示名称> = <需要显示的名字>)]
        public int S
        {
           get
           {
              ....
            }
            ....
         }
    }
    当将D的实例赋给属性框时就可以显示你自定义的中文名称了
    }