Re[3]: Как создать ComponentTray для Form Designer?
От: Dog  
Дата: 18.08.05 15:08
Оценка:
T>form = (Form)host.CreateComponent(typeof(Form));
T>rootDesigner = (IRootDesigner)host.GetDesigner(form);
T>view = (Control)rootDesigner.GetView(ViewTechnology.Default);
T>view.Dock = DockStyle.Fill;
T>pnlViewHost.Controls.Add(view);
T>[/c#]
Если драли с примера http://www.divil.co.uk/net/articles/designers/hosting.zip то всё должно работать.
По умолчанию форма уже подписана этим атрибутом и если правильно реализован IContainer.Add то там и инициализируется этот дизайнер. (кстати в статье это написано ) А в методе иниализации дизайнер подписыватся на IComponentChangeService.ComponentAdded и в обработчике события цепляет ComponentTray к дизайнеру, если добавляется компонент. Всё автоматически. Если что не ясно Reflector в руки и вперёд.

T>Надо подписать вот этот rootDesigner? А почему тогда он работает без подписи? (правда, и без трэя )

Дизайнер с простыми контролами работает ?

Вот вполне кошерная статья на русском здесь
И ещё пример дизайнера
здесь
... << RSDN@Home 1.1.4 beta 7 rev. 458>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.