我们可以在PropertyGrid中更改单个属性的文本/背景颜色

Cha*_*vak 3 .net c# propertygrid user-interface

我有一个.NET PropertyGrid控件,它显示某些类的属性.我想更改某些属性的颜色或字体或背景颜色(它们与其他显示的属性看起来不同).我可以用自定义编辑器编写,但我想知道:

  1. 如果存在更简单的方法?
  2. 如果我使用自定义编辑器,那么如何更改内置类型的编辑器,如bool,int等?

Han*_*ant 8

没有办法.确定项目绘制方式的类是PropertyGridView.源代码很有趣,它几乎成了:

    private /*protected virtual*/ PropertyGridView CreateGridView(IServiceProvider sp) {
        return new PropertyGridView(sp, this);
    }
Run Code Online (Sandbox Code Playgroud)

不,看起来在最后一刻他们决定反对使方法可以覆盖.PropertyGridView类也标记为内部.替换所有这些代码(有很多代码)并不是一个现实的选择.

只有将[Editor]属性应用于要编辑的类中的属性,才能为内置类型创建自己的UITypeEditor.这不是一般解决方案.考虑创建自己的表单以使对象可编辑.