在 C# windows 窗体属性网格中,您可以提供类别本身的描述吗?
Posted
技术标签:
【中文标题】在 C# windows 窗体属性网格中,您可以提供类别本身的描述吗?【英文标题】:in a C# windows forms property grid, can you provide descriptions for the categories themselves? 【发布时间】:2021-12-26 09:59:19 【问题描述】:在属性网格中,当您选择一个项目时,它会在底部的框中显示 [description("")] 帮助文本。
当您使用属性网格的分类视图时,您还可以选择自己选择类别名称
我的问题是,有没有办法为所选类别提供描述,以与属性的描述标签显示相同的方式显示?例如。当您选择输入时,您可能会看到
Input
Items in this category are related to Input
另外,如果它是相关的,我只是使用一个标准的属性网格,该网格由一个包含用描述和类别标记的属性的类填充
public class Foo
[Category("Foo Category")]
[Description("Foo Description help text")]
public string fooProperty get; set; = "";
【问题讨论】:
我知道您使用的是 MS PropertyGrid,但以防万一:WinForms 的第 3 方组件 Smart PropertyGrid 允许您设置类别描述。免责声明:我是这个组件的作者。 【参考方案1】:属性网格是“开源的”。
这个描述文字是由这个https://referencesource.microsoft.com/#system.windows.forms/winforms/Managed/System/WinForms/PropertyGridInternal/PropertyGridView.cs,4496设置的
this.ownerGrid.SetStatusBox(gridEntry.PropertyLabel,gridEntry.PropertyDescription);
而gridEntry
的类别由CategoryGridEntry
类https://referencesource.microsoft.com/#system.windows.forms/winforms/Managed/System/WinForms/PropertyGridInternal/CategoryGridEntry.cs 处理,该类派生自GridEntry
类,该类在此处定义PropertyDescription
属性https://referencesource.microsoft.com/#system.windows.forms/winforms/Managed/System/WinForms/PropertyGridInternal/GridEntry.cs,909:
public virtual string PropertyDescription
get
return null;
这个属性在CategoryGridEntry
中没有被覆盖,所有这些都是内部代码,所以,不,你不能有类别网格条目的描述。
【讨论】:
以上是关于在 C# windows 窗体属性网格中,您可以提供类别本身的描述吗?的主要内容,如果未能解决你的问题,请参考以下文章
从 c# windows 应用程序中的按钮单击将值返回到网格
C# winfrom 窗体的StartPosition 属性