C# PropertyGrid中的自定义属性名称?

C# PropertyGrid中的自定义属性名称?,c#,winforms,propertygrid,C#,Winforms,Propertygrid,我在PropertyGrid中使用了一个类。我发现,通过在每个属性上设置CategoryAttribute,它显然为每个项目创建了一个新的类别。这将我的属性网格设置为每个项目都有一个[+],其中包含我的自定义名称,而这不是我试图实现的行为 在VisualStudio中,如果单击解决方案资源管理器中的某个项(例如程序集),则它没有树节点,只有一个完全命名的属性列表,即任何字符串都可以标识属性,而不仅仅是对象的名称。因此,与其这样: [+文件路径] 文件路径|属性值 [+文件大小] 文件大小| 0

我在
PropertyGrid
中使用了一个类。我发现,通过在每个属性上设置
CategoryAttribute
,它显然为每个项目创建了一个新的类别。这将我的属性网格设置为每个项目都有一个[+],其中包含我的自定义名称,而这不是我试图实现的行为

在VisualStudio中,如果单击解决方案资源管理器中的某个项(例如程序集),则它没有树节点,只有一个完全命名的属性列表,即任何字符串都可以标识属性,而不仅仅是对象的名称。因此,与其这样:

[+文件路径]
文件路径|属性值
[+文件大小]
文件大小| 0 KB

我在找这个:

[+文件]
文件路径|值
文件大小| 0 KB

甚至上面没有初始[+]节点。我已经在System.ComponentModel命名空间中查找了一个适用的属性,但找不到

我怎样才能达到这个效果?这必须是可能的,Visual Studio会这样做,我相信它们是相同的组件,而不是派生和扩展的组件。

您需要将两个属性都设置为“文件”:

[Category("File")]
public string FilePath { get; set;}

[Category("File")]
public int FileSize { get; set;}
我建议您阅读“”,了解可用于组织属性的其他想法,包括添加说明。

使用更改文本显示内容(使其更易于阅读),将帮助文本添加到属性,并对属性进行分组

using System.ComponentModel;

[Category("Test")]
[DisplayName("Test Property")]
[Description("This is the description that shows up")]
public string TestProperty {get;set;}

你确实错过了显示名称的部分(如果你想添加它,请在我的回复中输入示例)是的,这解决了将它们放在一棵树下的问题,但我需要所选答案中的DisplayName属性。不过,谢谢!:Dyou还可以使用Description属性为用户提供更长的描述。非常感谢:)Lifesaver+1.