如何在c#的propertygrid中为枚举选择添加工具提示

本文关键字:枚举 选择 添加 工具提示 propertygrid | 更新日期: 2023-09-27 18:07:33

我刚刚发现了如何使用PropertyGrid的基本功能,我发现我的一些enum常量不是很清楚。当用户打开所有枚举常量的列表时,是否有可能出现他将鼠标悬停在哪个常量的工具提示?

例如,如果我在PropertyGrid中有一个名为SomeEnum的属性,其值为Enum1, Enum2, Enum3。当用户想要更改属性的值时,他拉下列表并将鼠标悬停在Enum1上,将出现一个工具提示,表示"这是Enum1"等等。

如何在c#的propertygrid中为枚举选择添加工具提示

您可能希望覆盖这些S.O.帖子中描述的enum的默认转换为字符串的功能:

c# String enum

c#:如何使用类型转换器来本地化枚举

或此MSDN文章:

http://msdn.microsoft.com/en-us/library/system.componentmodel.typeconverter%28VS.80%29.aspx

我不相信有什么简单的方法可以做到你所要求的PropertyGrid。你真正应该做的是重命名枚举值,以便更清楚地表达它们的用途;这有一个额外的好处,使您的源代码更容易理解。

如果您需要指定关于特定属性的附加信息,该属性是通过PropertyGrid设置的,您可以通过使用DescriptionAttribute:

标记它来完成。
[Description("This is my description of this property")]
public int Foo { get; set; }

如果你真的死定了保持你的枚举值,他们是,你可以潜在地实现一个TypeConverter和标记每个属性使用TypeConverterAttribute特定的枚举;这将允许您显式指定枚举值与PropertyGrid中显示的文本之间的转换。