Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Drag and drop в форме Добавлено: 14.10.08 22:10  

Автор вопроса:  Nytrogen
В общем, хочется визуализировать формочку выбора товаров так, чтобы юзер мог "перетаскивать" label'ы на картинку. У мну такая идея:
прописываем label_MouseDown и запоминаем, какой label начал "перетаскиваться";
меняем курсор формы на какое-нибудь подходящее изображение;
в обработчике image_MouseUp определяем, шо стряслось: если зареган "перетаскиваемый" label, то трубим в фанфары, если такого нет, то и нет.
Получается, что придётся для всех контролов при onMouseUp установить для формы стандартный курсор, а то будет "вечное перетаскивание" =) Довольно муторно. Есть ли другие варианты, идеи, пожелания? =)

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #1
Добавлено: 15.10.08 00:37
Вообще, у элементов есть свойство DragIcon.

Ответить

Номер ответа: 2
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #2
Добавлено: 15.10.08 08:05
Вообще стоит почитать доки по API функциям, связанным Drag'n'Drop.

Ответить

Номер ответа: 3
Автор ответа:
 Nytrogen



Вопросов: 18
Ответов: 186
 Профиль | | #3 Добавлено: 15.10.08 13:49
Вообще, у элементов есть свойство DragIcon.

Эм... У меня лично нет =). Есть MousePointer и MouseIcon. Но собсно нет свойства, разрешающего перетаскивания, какого-нибудь DragEnabled. Или это всё есть в API?

Ответить

Номер ответа: 4
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #4
Добавлено: 15.10.08 16:05
Если перетаскиваешь сами лейблы, то тебе помогут обработчики событий лейблов BeforeDragOver (перед перетаскиванием) и BeforeDropOrPaste (при завершении перетаскивания).

Ответить

Номер ответа: 5
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #5
Добавлено: 15.10.08 16:10
В первом обработчике тебе надо ставить SetCursor с иконкой, а во втором - SetCursor c параметром IDC_ARROW. Кажется так. SetCursor - функция API

Ответить

Номер ответа: 6
Автор ответа:
 Nytrogen



Вопросов: 18
Ответов: 186
 Профиль | | #6 Добавлено: 15.10.08 16:41
Спасибо. Сегодня куплю книгу по API, а то чувствую, что изобретаю велосипед.
Но вот всё же чтобы дожать эту тему, изложу ещё одну свою непонятку: контролы на форме сами по себе не перетаскиваются. У них такой же эффект, как в нотпаде - когда пытаешься мышкой текст выделить и перетащить. BeforeDragOver и BeforeDropOrPaste у меня срабатывают, когда перетаскиваешь на форму только нечто извне, например, текст из браузера.

Ответить

Номер ответа: 7
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #7
Добавлено: 15.10.08 20:57
Да создай массив лейблов и не парься. Ну и твоим способом (MouseDown, MouseUp)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам