Сделал свой класс, использую его как DataSource в DataBindings компонентов.
Как мне узнать, что методы моего класса вызываются не в райнтайме, а в дизайнтайме?
Здравствуйте, c#, Вы писали:
c#>Сделал свой класс, использую его как DataSource в DataBindings компонентов.
c#>Как мне узнать, что методы моего класса вызываются не в райнтайме, а в дизайнтайме?
С методами просто. Класс надо унаследовать от
Component и узнавать о дизайности через
Site и
DesignMode (аккуратно, Site может быть и null).
Несколько замороченнее с тем, что бы определить,
Design ли Mode в конструкторе.
Здравствуйте, _FRED_, Вы писали:
_FR>С методами просто. Класс надо унаследовать от Component и узнавать о дизайности через Site и DesignMode (аккуратно, Site может быть и null).
_FR>Несколько замороченнее с тем, что бы определить, Design ли Mode в конструкторе.
Ну а если классу не требуется быть компонентом? Или именно из-за этого надо наследоваться от компонента или реализовать IComponent?
Здравствуйте, c#, Вы писали:
_FR>>С методами просто. Класс надо унаследовать от Component и узнавать о дизайности через Site и DesignMode (аккуратно, Site может быть и null).
_FR>>Несколько замороченнее с тем, что бы определить, Design ли Mode в конструкторе.
c#>Ну а если классу не требуется быть компонентом? Или именно из-за этого надо наследоваться от компонента или реализовать IComponent?
Именно для этого, в некотором роде. IComponent (наследоваться, кстати, не обязательно, можно реализовать интерфейс) представляет доступ к опредлелённым сервисам дизайн-тайма. Узнать, в дизайн-тайме ли мы — тоже, в частности, такой сервис.
Для чего вам требуется знать, что DesignMode? Значит, ваш класс должен содержать в себе логику по работе в этом специальном режиме. Так почему бы не сделать его честным компонентом?
Но если не хочется — посмотрите варианты по ссылке в конце моего первого ответа: способы, описанные там будут работать не только в конструкторах, а где угодно и не связаны с требованиями компонентности.