| 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 Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript |