Можем ли мы изменить цвет текста / фона отдельного свойства в PropertyGrid - PullRequest
3 голосов
/ 18 мая 2010

У меня есть элемент управления .NET PropertyGrid, который отображает свойства некоторого класса. Я хочу изменить цвет или шрифт или цвет фона (не важно, что они выглядят иначе, чем другие отображаемые свойства) какого-либо свойства. Я могу сделать с написанием пользовательского редактора, но мне было интересно:

  1. Если существует более простой метод?
  2. Если я использую пользовательский редактор, как мне изменить редактор встроенных типов, таких как bool, int и т. Д.?

1 Ответ

8 голосов
/ 18 мая 2010

Не могу сделать. Класс, который определяет способ рисования элемента, является PropertyGridView. Исходный код интересен, он почти сделал это:

    private /*protected virtual*/ PropertyGridView CreateGridView(IServiceProvider sp) {
        return new PropertyGridView(sp, this);
    }

Нет, похоже, в последнюю минуту они решили не делать метод переопределенным. Класс PropertyGridView также был помечен как внутренний. Замена всего этого кода (существует лот этого) нереалистичный вариант.

Создание собственного UITypeEditor для встроенных типов возможно только путем применения атрибута [Editor] к свойствам класса, который вы хотите редактировать. Это не общее решение. Попробуйте создать собственную форму, чтобы сделать объект редактируемым.

...