место в рейтинге
  • 397239
  • 11141
  • 407
Нравится блог?
Подписывайтесь!

Программерское

Я тут Си шарпом начал баловаться.

Как сделать чтобы можно было в процессе выполнения программы перетаскивать панельки или picturebox'ы по форме с помощью мышки? И размеры менять

Кто поможет - тот молодчик))

23 апреля 2011, 14:56
462

Загрузка...

Комментарии

Sigurt
0
0
C#: теория Drag and Drop
Drag and Drop используется сегодня повсеместно, все привыкли к нему.
Реализовать эту полезную функцию в приложениях WinForms на платформе .NET достаточно просто, есть лишь несколько нюансов.

Прежде всего, событие перетаскивания должно инициироваться каким-либо действием пользователя. Чаще всего этим действием является нажатие левой кнопки мыши на элементе, который может быть перемещен в своем контейнере. Соответственно, событие это называется MouseDown, в его обработчике для реализации drag and drop нужно прописать следующую строку:

this.DoDragDrop(objectName, DragDropEffects.Move);


Несколько замечаний по приведенному фрагменту.
Некоторые компоненты обладают собственными событиями начала drag and drop. Например, TreeView имеет событие ItemDrag.
Употребление this предполагает, что перемещение объекта производится по всей форме (например, из таблицы пользователей в древовидный их список). В частном случае (например, когда запись в DataGridView нужно просто переместить на другое место) вместо this стоит употреблять идентификатор объекта, по которому происходит перемещение.
objectName — это имя объекта для перемещения. Им может быть элемент TreeView, строка или ячейка DataGridView, или что-то иное.

После начала drag and drop, нужно отлавливать момент перемещения элемента над другими объектам. Сделать это можно в событии DragEnter компонента, в области которого происходит drag and drop, возникающего сразу после попадания перетаскиваемого объекта в визуальную область элемента (например, узла TreeView). Чаще всего в обработчике DragEnter запоминается элемент, над которым перетескаваемый объект был в последний раз.
После DragEnter инициируется событие DragOver, возникающее в момент перемещения перетаскиваемого объекта над визуальной областью элемента компонента, инициировавшего DragOver. Если есть необходимость, тут можно заняться визуализацией процесса drag and drop.
Событие DragLeave возникает в момент покидания перетаскиваемого объекта визуальной области компонента, сгенерировавшего DragLeave.
После того, как пользователь заканчивает перетаскивать элемент, возникает событие DragDrop. В его обработчике и должна содержаться реализация процесса drag and drop, то есть перемещения объекта, перестроения списков, деревьев и прочего. Перетаскиваемый элемент objectName содержится в экземпляре класса DragEventArgs под именем Data.

Пример. Древовидный список (TreeView) содержит 3 элемента: 1, 2 и 3. Пользователь начинает перетаскивать элемент 3 над элементом 2, возникает событие DragEnter. Во время перетаскивания элемента 3 над элементом 2 возникает DragOver. Пользователь двигает элемент 3 к элементу 1 — DragLeave, DragEnter, DragOver. После того как пользователь отпускает левую кнопку мыши над элементом 1 — DragDrop.

Источник: itmodus.ru
Я делал по этому описанию =)
это немного не то
Данные перетаскивать не так уж и сложно, нужно чтобы можно было перетаскивать например панельки по форме, менять их размеры мышкой и т.д.
но спасибо

Оставьте свой комментарий

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

Я был удивлён, что в Азербайджане есть Казахский район

Я был удивлён, что в Азербайджане есть Казахский район

Мне как казаху по национальности очень хотелось туда попасть. Оказалось, что климат там намного суровей и люди, говорят, суровые и воинственные. Казах – город на западе Азербайджана...
alidimash
18 янв. 2017 / 21:50
  • 30843
  • 18
Многочасовые очереди, смерти в ЦОНах: почему вопросы об этом ставят парламентариев в тупик?

Многочасовые очереди, смерти в ЦОНах: почему вопросы об этом ставят парламентариев в тупик?

Ожидали ли депутаты Мажилиса всего этого? Как планировали этот процесс регистрации, и обсуждали ли его, прежде чем одним нажатием кнопки принять нормы с такими абсурдными временными рамками?
openqazaqstan
17 янв. 2017 / 14:32
  • 5286
  • 22
Астана глазами алматинских девушек. Как при таких погодных условиях можно выжить?

Астана глазами алматинских девушек. Как при таких погодных условиях можно выжить?

В спальных районах, и в высотных домах сквозь стены слышно завывание ветра. В особенности ночью. Такие звуки, я слышала, пожалуй, только по телевизору, в фильмах про метель.
Naomi_K
20 янв. 2017 / 12:36
Сильное ДТП произошло в Алматы на Тимирязева-Байзакова

Сильное ДТП произошло в Алматы на Тимирязева-Байзакова

NoComment (c) Официальный слоган EuroNews. Катастрофа на алматинской утренней трассе началась с того, что водители «Ниссана» и микровена ожидали сигнала светофора на запад по Тимирязева...
ibestreporter
17 янв. 2017 / 22:52
  • 3953
  • 5
Вейпинг безопасен? Эндрю Холл из США тоже так считал, пока что-то не пошло не так

Вейпинг безопасен? Эндрю Холл из США тоже так считал, пока что-то не пошло не так

Эндрю Холл из США считал, что вейпинг безопасен и усиленно убеждал в этом близких. Но как-то раз что-то пошло не так. Это результат взрыва хипстерского устройства - выбило 7 зубов + ожоги и раны...
Maxambet
17 янв. 2017 / 16:28
  • 4054
  • 52
Это поколение просрет страну. 20-летняя молодежь представляет из себя сказочных эльфов

Это поколение просрет страну. 20-летняя молодежь представляет из себя сказочных эльфов

Смотря в очередные пустые глаза вчерашнего студента, приходящего устраиваться на первую работу страшно становится. Потому что сравниваю с теми же китайскими студентами, которые готовы выгрызать себе мечту.
mbaitykov
18 янв. 2017 / 11:34
Становится хуже, но как-то постепенно. Беднеем, но тоже как-то не разом

Становится хуже, но как-то постепенно. Беднеем, но тоже как-то не разом

Помню, когда я уезжал и Казахстана, тут было довольно прилично, даже не смотря на то, что жить было невыносимо. Но прилично так. Мусора было меньше. Дороги чистили, вони почти не было. Да и в остальном тоже норм.
shootnix
18 янв. 2017 / 12:49
  • 3824
  • 35
Любимый Тайланд. Правящий король называет Паттайю «черным пятном на репутации страны»

Любимый Тайланд. Правящий король называет Паттайю «черным пятном на репутации страны»

Тайланд мы впервые посетили в декабре 2012 года. Полученные эмоции настолько были яркими, что в конце 2015 года мы решили еще разок слетать в Тайланд. Вспоминая Тай, первое о чем я думаю - горячий...
zhainar_d
17 янв. 2017 / 11:11
  • 3913
  • 25
Разрубить сирийский узел. Казахстан как миротворец сделает невозможное?

Разрубить сирийский узел. Казахстан как миротворец сделает невозможное?

Только что в Астане начались межсирийские переговоры. Событие это примечательно не столько содержанием и ожидаемыми результатами, а самим фактом.
openqazaqstan
вчера / 13:35
  • 3104
  • 12