Здравствуйте, andreich78, Вы писали:
A>это я написал про интерфейс IPropertyValueUIService
A>вешает децельные картинки в столбце названий и бросает наружу сообщения о двойных щелчках по картинкам.
A>еще заявлена возможность изменять тултип свойства в гриде, но, похоже не реализован.
A>интерфейс поддерживается в design-time, нов рантайме потребуется собственная реализация ISite на родительской форме. или через рефлекшн присвоить пару свойств.
A>кстати способ с отслеживанием кликов через рефлекшн — самый надежный.
Это я. Завел себе логин.
А я думал, что про GetPaintValueSupported и PaintValue у UITypeEditor.
Кстати, Dog написал, что UITypeEditor и TypeConverter помогут с вопросом ввода по маске.
Я что-то не вижу каким образом.
Про реализацию ISite, можно подробнее, не укладывается в голове как через реализацию свойств:
Component,
Container,
DesignMode,
Name,
можно потом через GetService запросить IPropertyValueUIService, у кого? В примере, что-то неясно, класс со свойствами описывает еще свойство типа ISite, а в нем у себя запрашивает этот интерфейс:
public override System.ComponentModel.ISite Site
{
get
{
return base.Site;
}
set
{
if( value != null )
{
base.Site = value;
IPropertyValueUIService uiService = (IPropertyValueUIService)this.GetService(typeof(IPropertyValueUIService));
if( uiService != null )
uiService.AddPropertyValueUIHandler( new PropertyValueUIHandler(this.marginPropertyValueUIHandler) );
}
else
{
IPropertyValueUIService uiService = (IPropertyValueUIService)this.GetService(typeof(IPropertyValueUIService));
if( uiService != null )
uiService.RemovePropertyValueUIHandler( new PropertyValueUIHandler(this.marginPropertyValueUIHandler) );
base.Site = value;
}
}
}