|
Drag&Drop - контролы |
|
|
Сначала создаем новый проект. На форме надо разместить 2 PictureBox. Один назовем ImgFolder, DragMode установим равным 0-manual, ну и в свойство Picture иконку папки впихнем. Второму PictureBox присвоим имя ImgTrash и в свойство назначим иконку корзины. У обоих PictureBox установите свойства AutoSize = True и BorderStyle = 0 - None.
Ну а теперь самое главное - Код !!!
'Инициализация
Const EmptyTrash = "Waste.ico"
Const FullTrash = "Recyfull.ico"
Dim MouseX, MouseY As Single
Dim IsTrash As Boolean
Dim Path As String
Option Explicit
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
'Окончание перетаскивания (с учетом поправки)
Source.Move (X - MouseX), (Y - MouseY)
End Sub
Private Sub Form_Load()
IsTrash = False
'Путь к иконкам можно задать по умолчанию:
'Path = "C:\Program Files\Microsoft Visual Studio"
'Path = Path & "\Common\Graphics\Icons\win95\"
'Но это не удобно и не у каждого юзера Visual Studio установлен
End Sub
Private Sub imgFolder_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'если нажата левая кнопка, то начинается перетаскивание
If Button = vbLeftButton Then
Call imgFolder.Drag(vbBeginDrag)
MouseX = X 'Показываем координаты на указателе мыши
MouseY = Y
End If
End Sub
Private Sub imgTrash_DblClick()
'Извлечение папки из корзины
imgFolder.Visible = True
IsTrash = True
'Задаем изображение пустой корзины
imgTrash.Picture = LoadPicture(Path & EmptyTrash)
End Sub
Private Sub imgTrash_DragDrop(Source As Control, X As Single, Y As Single)
Source.Visible = False 'конец перетаскивания папки в корзину
IsTrash = True
imgTrash.Picture = LoadPicture(Path & FullTrash) 'задаем изображение полной корзины
End Sub
Ловиков Миха
|
|
|
|
|
|
|