P>Это я. Завел себе логин. P>А я думал, что про GetPaintValueSupported и PaintValue у UITypeEditor.
они работают со столбцом значений. клики на картинках отдельно не обрабатывают.
P>Кстати, Dog написал, что UITypeEditor и TypeConverter помогут с вопросом ввода по маске. P>Я что-то не вижу каким образом.
P>Про реализацию ISite, можно подробнее, не укладывается в голове как через реализацию свойств: P>Component, P>Container, P>DesignMode, P>Name, P>можно потом через GetService запросить IPropertyValueUIService, у кого? В примере, что-то неясно, класс со свойствами описывает еще свойство типа ISite, а в нем у себя запрашивает этот интерфейс:
правильно что не укладывается, я похоже спутал ISite с другим интерфейсом или методом, потом поищу.
Суть такая — Проперть Site пропертигриду назначает кто-то извне. При назначении этой проперти он запрашивает у этого ISite`а сервиспровайдера. почти как в примере, только сервис — IServiceProvider. Экземпляр он сохраняет и за различными интерфейсами обращается к нему. в том числе и за IPropertyValueUIService.
Таким образом, есть два пути подставить пропертигриду собственною реализацию IPropertyValueUIService:
— присвоить ему нестандартное значение Site. такое, чтобы оно вернуло твой ServiceProvider. тогда пропертигрид возьмет то что нужно самостоятельно.
— достать через Reflection внутреннее поле, в котором живет сервиспровайдер и назначить его, минуя Site.
вот что я имел в виду, когда говорил о реализации ISite на родительской форме.
совершенно конечно не так надобыло сказать, ближе будет "реализация присваивания родительской формой свойства Site пропертигриду".