![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| sedoy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 23.1.2008 Репутация: нет Всего: нет |
У меня на форме есть несколько объектов - button, comboBox и Lable.
В запущенном приложении - клацая мышкой по одному из этих объектов у меня динамически создается еще один такойже. Как сделать, чтобы динамически созданные объекты можно было перемещать или изменять их размеры (в ходе выполнения приложения)? Чтоб получилось, как при проектировании интерфейса пользователя (берем компонент, бросаем его на форму и проектируем его размеры и координаты). |
|||
|
||||
| marcusmae |
|
||||||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 22 Всего: 39 |
Сначала нужно понять как работает дизайнер. Вкратце так : сначала он создаёт контролы, потом задаёт требуемым образом их свойства, и в конце добавляет на форму (см. файл Form1.Designer.cs в проекте). Контрол может быть отображен после того, как он попал в коллекцию контролов формы :
С динамическим изменением имеется тонкость : свойства контрола могут быть изменены исключительно в том же потоке, который создал форму. В следующем примере создадим форму с кнопкой. По таймеру надпись на кнопке будем устанавливать в текущее системное время - получится такой будильник с секундами в постиндустриальном стиле
-------------------- ἀπὸ μηχανῆς θεός |
||||||
|
|||||||
| vponomarov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 4 Всего: 12 |
sedoy, как я вижу, решение твоей задачи этопосле добавления контрола на форму (это ты умеешь как я понял) переназначить его реакцию на разные события.
простейший пример - реализовать перетаскивание объектов. пишешь обработчики событий MouseDown и MouseMove (если нужно пример, могу помочь, но там сложностей никаких нет). прикол в том, что у всех конторов есть общий набор свойств т.к. они являются потомками Control. т.е. обработчик перетаскивания для всех контролов может быть одинаковым:
аналогично можно и изменение размера реализовать. идея понятна? |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |