как узнать, что сейчас дизайнтайм в VS 2008?
От: c#  
Дата: 02.11.10 06:23
Оценка:
Сделал свой класс, использую его как DataSource в DataBindings компонентов.
Как мне узнать, что методы моего класса вызываются не в райнтайме, а в дизайнтайме?
Re: как узнать, что сейчас дизайнтайм в VS 2008?
От: _FRED_ Черногория
Дата: 02.11.10 07:43
Оценка:
Здравствуйте, c#, Вы писали:

c#>Сделал свой класс, использую его как DataSource в DataBindings компонентов.
c#>Как мне узнать, что методы моего класса вызываются не в райнтайме, а в дизайнтайме?

С методами просто. Класс надо унаследовать от Component и узнавать о дизайности через Site и DesignMode (аккуратно, Site может быть и null).

Несколько замороченнее с тем, что бы определить, Design ли Mode в конструкторе.
Help will always be given at Hogwarts to those who ask for it.
Re[2]: как узнать, что сейчас дизайнтайм в VS 2008?
От: c#  
Дата: 02.11.10 07:48
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>С методами просто. Класс надо унаследовать от Component и узнавать о дизайности через Site и DesignMode (аккуратно, Site может быть и null).


_FR>Несколько замороченнее с тем, что бы определить, Design ли Mode в конструкторе.


Ну а если классу не требуется быть компонентом? Или именно из-за этого надо наследоваться от компонента или реализовать IComponent?
Re[3]: как узнать, что сейчас дизайнтайм в VS 2008?
От: _FRED_ Черногория
Дата: 02.11.10 07:55
Оценка: 3 (1) +1
Здравствуйте, c#, Вы писали:

_FR>>С методами просто. Класс надо унаследовать от Component и узнавать о дизайности через Site и DesignMode (аккуратно, Site может быть и null).


_FR>>Несколько замороченнее с тем, что бы определить, Design ли Mode в конструкторе.


c#>Ну а если классу не требуется быть компонентом? Или именно из-за этого надо наследоваться от компонента или реализовать IComponent?

Именно для этого, в некотором роде. IComponent (наследоваться, кстати, не обязательно, можно реализовать интерфейс) представляет доступ к опредлелённым сервисам дизайн-тайма. Узнать, в дизайн-тайме ли мы — тоже, в частности, такой сервис.

Для чего вам требуется знать, что DesignMode? Значит, ваш класс должен содержать в себе логику по работе в этом специальном режиме. Так почему бы не сделать его честным компонентом?

Но если не хочется — посмотрите варианты по ссылке в конце моего первого ответа: способы, описанные там будут работать не только в конструкторах, а где угодно и не связаны с требованиями компонентности.
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.