C# PropertyGrid - 使所有属性不粗体
在 PropertyGrid 表单元素中,当我向类别添加属性时,某些属性会以粗体显示。
现在,我知道这表明它们是该类别中的默认值。我的问题是如何使所有属性不变为粗体?
我知道一种可能的方法是更改 DefaultValueAttribute 属性,但我想知道是否可以以不同的方式完成: 这篇文章建议我可能必须使用反射,目前这对我来说有点神秘:)
先感谢您
In a PropertyGrid form element, when I add properties to my categories, some appear in Bold.
Now, I know that it suggests that they are the default values in that category. My question is how to make all properties not bold?
I know one possible way is changing the DefaultValueAttribute attribute, but I was wondering if it can be done in a different way: this post suggests that I might have to use reflections, which is kind of mystical for me at the moment :)
Thank you in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在您自己的属性上使用[默认]属性,否则您可以执行以下可怕的黑客操作(风险自负)。
在.Net Framework 4.7.2 中尝试过。您也会失去类别上的粗体。
Use [Default] Attribute on your own properties, otherwise you can do -at your very own risk- the following horrible hack.
Tried in .Net Framework 4.7.2. You'll loose the bold on categories aswell.
对于每个属性,您可以添加:
除此之外,您还可以通过
ICustomTypeDescriptor
或TypeDescriptionProvider
进入自定义PropertyDescriptor
实现领域。请注意,此模式在许多地方使用,但在某些地方(例如
XmlSerializer
),它需要是public
方法。For each property, you can add:
Other than that, you are into the realm of custom
PropertyDescriptor
implementations viaICustomTypeDescriptor
orTypeDescriptionProvider
.Note that this pattern is used in a number of places, but in some (
XmlSerializer
, for example), it is required to be apublic
method.