使用

<System.ComponentModel.TypeConverter(GetType(System.ComponentModel.ExpandableObjectConverter))> _


在由数字属性组成的类的声明(这是另一个类的属性)上。

我只用...加载此类的实例

PropertyGrid1.SelectedObject = oColumn


显然,我不想手动在代码中构建propertygrid,我知道该怎么做。

但这就是问题所在。根据属性的值,某些其他属性应该不可见,就好像我使用了

<System.ComponentModel.Browsable(False)> _


属性声明中的属性。

无论如何,是否可以通过编程方式执行此操作,而不必手动处理属性网格的所有构建>

最佳答案

如果您希望使用gridItem.Hide(),那么答案是否定的。在MS PropertyGrid中实现此目标的唯一方法是通过TypeConverter或自定义类型描述符(实现ICustomTypeDescriptor)的GetProperties方法动态发布属性。我将首先尝试使用TypeConverter(特别是如果您要检查的属性值处于同一级别),则要​​做的代码更少。

08-07 09:02