Drag & Drop в VB, Basic, Програмування, статті

Гайдар Магдануров, VBStreets

Любимым занятием
пользователей Windows является Drag & Drop,
так почему же не украсить свои приложения красиво
перетаскиваемыми объектами.

Для простого
примера создайте форму, разместите на ней картинку Image1
и добавьте следующий код:

Private Sub
Form_Load()
Image1.DragIcon = Image1.Picture
‘ При
перетаскивании картинки, курсор становиться этой картинкой
End Sub
Private Sub
Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Image1.Drag vbBeginDrag
Перетаскивание можно осуществлять нажав любую кнопку, хоть третью если есть.
Image1.Visible = False
Так эффект лучше смотрится, словно картинку взяли и унесли.
End Sub

Private Sub
Form_DragDrop(Source As Control, X As Single, Y As Single)
Image1.Move X, Y
‘ Мы перемещаем
иконку туда, где отпустили кнопку, на форме.
Image1.Visible = True
‘ Ну и делаем
видимой картинку
End Sub

Вот такой
простенький пример.

Поместите на форме
PictureBox, названый Picture1, еще
две картинки, одну назовите Yes, а другую No.
Теперь присвойте картинке yes – иконку,
которая показывает, что сюда объект поместить можно, а в No,
что сюда объект помещать нельзя.

Теперь
модифицируем имеющийся код, да и добавим немного.


Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Image1.Move X, Y
Image1.Visible = True
End Sub


Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y
As Single)
Image1.Drag vbBeginDrag
Image1.Visible = False
End Sub

Оставили события
DragOver формы  и MouseDown
картинки нетронутыми.


Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)
Image1.Visible = True
‘Если отпустить
картинку над Picture1, то она просто появиться так, где и
была до Drag-а

End Sub

Private Sub Image1_DragOver(Source As Control, X As Single,
Y As Single, State As Integer)
Select Case State
Case vbEnter
Image1.DragIcon = yes.Picture
Case vbLeave
Image1.DragIcon = no.Picture
End Select
End Sub
Private Sub Picture1_DragOver(Source As Control, X As Single, Y As Single, State
As Integer)
Select Case State
Case vbEnter
Image1.DragIcon = yes.Picture
Case vbLeave
Image1.DragIcon = no.Picture
End Select
End Sub

Объясняю: vbEnter – означает, что объект находится над
приемником, а vbLeave, что ушел с приемника. В событии
Picture1, я вовсе не ошибся, там написано то же самое,
что и в Image1, т.к. приемником является форма.

Ну все. Удачи с
Drag & Drop.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*