我需要使用类别
对属性网格中的属性进行分组答案 0 :(得分:2)
使用CategoryAttribute
装饰该属性,并指定要在其中显示该属性的类别的名称。如果该类别尚不存在,则会有一个新类别自动创建。
例如,如果您要在属性窗口中的自定义类别“用户”下显示属性UserName
,则应在自定义控件中编写以下代码:
[Category("Users")]
public string UserName
{
get { return _userName }
set { _userName = value }
}
如果您希望自己的属性出现在现有类别(已经出现在“属性”窗口中的属性之一)中,则应指定该类别的名称。例如,如果我希望UserName
属性出现在“数据”类别中,我只需将上面的代码更改为:
[Category("Data")]
public string UserName
{
get { return _userName }
set { _userName = value }
}
答案 1 :(得分:1)
“对不起的朋友刚看到你的回复,我需要在组中创建子组,如属性网格中出现的字体组,在该组中,名称,大小,单位等属性将出现”
您在评论中描述的内容是子属性。对于像float这样的简单类型,如果将它们作为属性公开,则PropertyGrid已经知道如何显示它们并对其进行编辑。用户定义的类具有默认实现,不允许编辑并显示类名。如果要在类中显示属性,则需要在类定义上方添加:
[TypeConverter(typeof(ExpandableObjectConverter))]
告诉属性网格允许扩展属性以查看其中的属性。
有关PropertyGrid的更多信息,请访问: Getting the Most Out of the .NET Framework PropertyGrid Control