| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Добавление контрола на форму |
| Автор: Legolas 21.7.2009, 23:40 | ||
| Добрый вечер. Возник вопрос - можно ли как-то "передать контрол" при создании новой формы. пример: есть форма с заполненной датагридвью (или нарисованным графиком (ZEDGraph), при создании\вызове новой формы необходимо, чтобы данный контрол (ZEDGraph или датагридвью) прорисовался на новой форме с заполненными полями\нарисованным графиком. пытался так, но эффект не достиг.
|
| Автор: Экскалупатор 21.7.2009, 23:47 |
| Legolas, а зачем целый контрол передавать? не лучше ли "что бы мухи были отдельно от котлет"(данные отдельно, отображение отдельно), лучше передать содержимое, а в новой форме его просто показать в контроле этой формы. Добавлено через 1 минуту и 45 секунд кстати, просто ради интереса, а что вы делаете с этим контролом в новой форме? можете код показать? |
| Автор: Legolas 22.7.2009, 00:09 |
| кода пока нет. просто у меня есть график маленького размера - я хочу по щелчку открывать его на новой форме. думаю вы предложили самое оптимальное решение - передавать данные. так и сделаю, зачем мутить что-то =))) спасибо. PS: я вообще было бы интересно узнать можно ли передать заполненный контрол))) и для чего вообще нужна Form.Controls.Add(...) - кроме как для создания нового. тему пока не закрываю. Добавлено через 11 минут и 57 секунд всё, решил задачу. =))) |
| Автор: Экскалупатор 22.7.2009, 00:30 | ||||
| Legolas, самому стало интересно. только что попробовал, кнопка передается без проблем, передается так же все что связано с этой кнопкой: обработчики, настройки, полностью все. получается прикольно. обработчик кнопки в первой форме:
добавление кнопки во второй форме:
сделал через конструктор. |
| Автор: Legolas 22.7.2009, 00:30 | ||
| теперь проблема заключается в том, что при добавлении контрола на новую форму он исчезает со старой - как это можно решить. добавляю так:
|
| Автор: Экскалупатор 22.7.2009, 01:57 | ||
если сделать так то все работает и контрол не исчезает:
тут смысл в том что бы именно создать новый контрол и его передать, а не тот что уже есть. интересно почему пропадает старый контрол при передаче. может CLR считает что это уникальный контрол и он может быть только один? |
| Автор: Экскалупатор 22.7.2009, 02:25 |
| или это вопросы потокобезопасности... получается что каждаю форма это как отдельный поток, но почему пропадает?... |
| Автор: Legolas 22.7.2009, 11:34 |
| да, странно... а нужно именно старый контрол передать как бы сделать копию старого. а получается как команда "вырезать" =))) можно конечно при закрытии формы попробовать его обратно передавать... но это изврат... что-то мне кажется, что существует какой-то способ.. =) где же наши эксперты? =) |
| Автор: antslava 27.7.2009, 01:32 |
| Тебе надо отнаследовать свой контрол от ICloneable. |