[Browsable(true),
Category("IMG"),
DefaultValue(""),
Description("指定图片的地址")]
public string Text
{
get
{
object obj=ViewState["Text"];
return (obj==null)?"":(string)obj;
}
set
{
ViewState["Text"]=value;
}
}我在自定义控件的时候,只暴露了这个属性,别的什么都没有,
但是在属性面版中就是没有显示,怎么回事?

解决方案 »

  1.   

    因为你的Category名称不是系统预定义的,要继承CategoryAttribute类
    CategoryAttribute 指示在一个被设置为按分类顺序模式的 System.Windows.Forms.PropertyGrid 控件中列出属性或事件时,将关联的属性或事件与之关联的类别。如果没有对属性或事件应用 CategoryAttribute,则 System.Windows.Forms.PropertyGrid 将属性或事件与杂项类别关联。通过在 CategoryAttribute 的构造函数中指定类别的名称,可以为任何名称创建新的类别。Category 属性指示该属性所代表的类别的名称。Category 属性还以透明方式对类别名称进行本地化。对继承者的说明:  如果使用类别名称而不是预定义的名称,并且想要本地化类别名称,则必须重写 GetLocalizedString 方法。此外,可以重写 Category 属性以提供您自己的本地化逻辑。