我有枚举例如说:
public enum Color
{
red,
green,
blue
}
并且有两个班级。具有enum。]]属性的
public ClassA{ public Color Color{get;set;} } public ClassB{ [InvisibleFlag(red)] // I want something like that public Color Color{get;set;} }
现在是WinForms设计器。我只想从Color枚举中隐藏红色标记。仅适用于ClassB
我知道我可以创建一个单独的枚举。但是为什么要重复值呢?我仅举了一个简单的例子。
我想可能会对上级可以帮助我的事情有所帮助。
描述符API。我讨厌;(
也许像
TypeDescriptor.AddAttributes(object, new BrowsableAttribute(false));
编辑:此answer将不起作用。因为我只讲特定的课程。
例如,我有一个枚举:public enum Color {red,green,blue}并有两个类。具有枚举的属性。 public ClassA {public Color Color {get; set;}} public ClassB {[...
可帮助您在属性网格中显示枚举值的类是EnumConverter
。您可以创建一个自定义枚举转换器并覆盖其EnumConverter
以基于该属性具有的特定属性返回标准值。您可以使用GetStandardValues
的GetStandardValues
属性访问GetStandardValues
方法中的属性描述符,该属性作为参数传递给方法。