我刚刚发现了如何使用PropertyGrid的基本功能,我发现我的一些枚举常量不是很明显。是否有可能当用户打开所有枚举常量的列表时,工具提示会出现在他将鼠标悬停在哪个常数上?
例如,如果我在PropertyGrid中有一个名为SomeEnum的属性,则值为Enum1,Enum2,Enum3。当用户想要更改属性的值时,他会关闭列表并将鼠标悬停在Enum1上,工具提示将显示“This is Enum1”等等。
答案 0 :(得分:0)
我不相信有任何简单的方法可以用PropertyGrid
做你所要求的。你真正应该做的是重命名你的枚举值,以更清楚地表达他们的目的;这有使您的源代码更易于理解的附加好处。
如果您需要指定有关通过PropertyGrid
设置的特定属性的其他信息,可以使用DescriptionAttribute
标记
[Description("This is my description of this property")]
public int Foo { get; set; }
如果您确实保持枚举值不变,则可以实现TypeConverter
并标记使用TypeConverterAttribute
的特定枚举的每个属性;这将允许您明确指定枚举值与PropertyGrid
中显示的文本之间的转换。有关详细信息,请参阅this MSDN article。
答案 1 :(得分:0)
您可能希望覆盖这些S.O.中描述的枚举的默认转换为字符串功能。帖子:
C#: How to use a Type Converter to localize enums
或此MSDN文章:
http://msdn.microsoft.com/en-us/library/system.componentmodel.typeconverter%28VS.80%29.aspx