我用微软提供的DesignerHosting做运行时窗体设计器,用propertyGrid显示控件的属性,控件的属性全部是英文的,不利于客户做表单编辑功能,有什么办法可以把属性换成中文?比如TextBox的“font”属性我想换成“字体”。

解决方案 »

  1.   

    最笨的办法就是弄一个字典Dictionary<string,string>,把所有你要的属性和对应的中文放进去,然后用到的时候,直接根据属性读取出相应的中文名。
      

  2.   

    为你的属性添加DescriptionAttribute,这个特性在System.ComponentModel命名空间下
      

  3.   

    如果是架构设计的话,可以利用PropertyDescriptor,重载其DisplayName属性。
      

  4.   

    [DisplayName("")]   
      public   string   Name   
      {   
      get{return  "";}   
      }   
    http://blog.csdn.net/RonoTian/archive/2008/10/30/3183907.aspx
      

  5.   

    感谢大家的回答!确实能够实现大部分的需求。但现在出现了一个新情况。我创建了一个组件CTextBox,从TextBox继承,CTextBox我新增了一个属性,属性是下拉框可选值的,重载了DisplayName属性后,属性就不是下拉框可选值了,直接变成文本框了,不知道怎么回事