Программно добавить контрол в дизайн тайме (типа drag&drop)
От: Shurik_ Россия  
Дата: 21.02.07 08:53
Оценка:
Подскажите можно ли с помощью программного кода добавить контрол
в дизайн тайме, как будто его поместили перетащив мышью с панели инструментов.

21.02.07 12:21: Перенесено модератором из '.NET' — Хитрик Денис
Re: Программно добавить контрол в дизайн тайме (типа drag&dr
От: _FRED_ Черногория
Дата: 21.02.07 09:49
Оценка:
Здравствуйте, Shurik_, Вы писали:

S_>Подскажите можно ли с помощью программного кода добавить контрол

S_>в дизайн тайме, как будто его поместили перетащив мышью с панели инструментов.

Отыщите в "дизайн тайме" нужный Container и добавьте необходимый компонент в него.
Help will always be given at Hogwarts to those who ask for it.
Re[2]: Программно добавить контрол в дизайн тайме (типа drag
От: Shurik_ Россия  
Дата: 21.02.07 09:54
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, Shurik_, Вы писали:


S_>>Подскажите можно ли с помощью программного кода добавить контрол

S_>>в дизайн тайме, как будто его поместили перетащив мышью с панели инструментов.

_FR>Отыщите в "дизайн тайме" нужный Container и добавьте необходимый компонент в него.



Я нашёл как сделать:

IDesignerHost host = (IDesignerHost)this.Site.GetService(typeof(IDesignerHost));
IComponent obj = host.CreateComponent(typeof(<type>));

контрол появляется в списке контролов, но не отображается, в чём проблема??
Re[3]: Программно добавить контрол в дизайн тайме (типа drag
От: Warr  
Дата: 21.02.07 10:51
Оценка: -1
Здравствуйте, Shurik_, Вы писали:

S_>Здравствуйте, _FRED_, Вы писали:


_FR>>Здравствуйте, Shurik_, Вы писали:


S_>>>Подскажите можно ли с помощью программного кода добавить контрол

S_>>>в дизайн тайме, как будто его поместили перетащив мышью с панели инструментов.

_FR>>Отыщите в "дизайн тайме" нужный Container и добавьте необходимый компонент в него.



S_>Я нашёл как сделать:


S_>IDesignerHost host = (IDesignerHost)this.Site.GetService(typeof(IDesignerHost));

S_>IComponent obj = host.CreateComponent(typeof(<type>));

S_>контрол появляется в списке контролов, но не отображается, в чём проблема??


Этим вы создали контрол для IDesignerHost,
но его нужно еще поставить на форму т.е. назначить его Parent

(obj as Control).Parent = ...;
Re[3]: Программно добавить контрол в дизайн тайме (типа drag
От: _FRED_ Черногория
Дата: 21.02.07 12:20
Оценка:
Здравствуйте, Shurik_, Вы писали:

S_>>>Подскажите можно ли с помощью программного кода добавить контрол

S_>>>в дизайн тайме, как будто его поместили перетащив мышью с панели инструментов.

_FR>>Отыщите в "дизайн тайме" нужный Container и добавьте необходимый компонент в него.


S_>Я нашёл как сделать:


[c#]
S_>IDesignerHost host = (IDesignerHost)this.Site.GetService(typeof(IDesignerHost));
S_>IComponent obj = host.CreateComponent(typeof(<type>));
[/c#]
S_>контрол появляется в списке контролов, но не отображается, в чём проблема??

Прочитай ещё раз моё сообщение медленно и вдумчиво Компонент всего лишь создан. Теперь его надо добавить в контейнер.
Help will always be given at Hogwarts to those who ask for it.
Re[4]: Программно добавить контрол в дизайн тайме (типа drag
От: DmitryMS  
Дата: 21.02.07 12:37
Оценка:
Parent is always R/O. you wanna add your control to the panel: myPanelRef.Add(myControl)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.