在设计时以只读方式更改属性属性 (PropertyGrid)
我开发了一个自定义控件,其中包含如下所示的一些字段:
ControlKind、Field1 、 Field2
我想更改每个 controlKind 的其中一个字段的属性,
例如:如果 controlKind == useField1,则 Field1 显示,Field2 隐藏在properyGrid(或只读或过滤器)中,
我可以这样做吗?
提前致谢
I develop a custom control that have some field like below:
ControlKind, Field1 , Field2
I want to change attribute of one of field per controlKind,
Like: if controlKind == useField1, then Field1 show and Field2 hidde in properyGrid (or readonly or filter)
can i do it ?
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
实现 ICustomTypeDescriptor,或注册 TypeDescriptionProvider 并从中返回自定义类型描述符,或应用 TypeConverterAttribute。
在所有三种情况下,您都需要实现/重写 GetProperties 方法以返回实际属性的筛选子集。 (在 TypeConverter 方法中,您还必须重写 GetPropertiesSupported 以返回 true。)
Implement ICustomTypeDescriptor, or register a TypeDescriptionProvider and return a custom type descriptor from that, or apply TypeConverterAttribute.
In all three cases, you need to implement / override the GetProperties method to return a filtered subset of the actual properties. (In the TypeConverter approach, you must also override GetPropertiesSupported to return true.)