是否可以隐藏类的特定属性的枚举标志? WinForms设计器

问题描述 投票:0回答:1

我有枚举例如说:

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 {[...

c# .net winforms enums windows-forms-designer
1个回答
0
投票

可帮助您在属性网格中显示枚举值的类是EnumConverter。您可以创建一个自定义枚举转换器并覆盖其EnumConverter以基于该属性具有的特定属性返回标准值。您可以使用GetStandardValuesGetStandardValues属性访问GetStandardValues方法中的属性描述符,该属性作为参数传递给方法。

© www.soinside.com 2019 - 2024. All rights reserved.