Codice essenziale per effettuare il Drag-Drop di un'immagine

Da Gambas-it.org - Wikipedia.

Mostriamo di seguito un codice essenziali per effettuare il Drag-Drop [Nota 1] di un'immagine, ad esempio, da una PictureBox a un'altra.
In particolare:

  • la PictureBox, nella quale verrà effettuato il rilascio dell'icona dell'immagine trascinata, deve avere la sua proprietà .Drop posta a True;
  • la PictureBox, dalla quale viene prelevata e trascinata l'immagine (e quindi quella alla quale sarà applicato l'evento che scatena il prelevamento dell'immagine da trascinare), deve essere quella che ovviamente contiene l'immagine;
  • l'evento che scatena il prelevamento dell'immagine da trascinare è _MouseDrag();
  • all'interno della routine di questo evento si porrà la riga di comando: Drag.Icon = Last.Picture, affinché durante il trascinamento appaia in prossimità del puntatore del mouse l'icona dell'immagine che si sta trascinando. Inoltre, sarà posta quest'altra riga: Last.Drag(Last.Picture.Image) per avviare il processo di trascinamento, indicando nell'argomento del metodo Drag che i dati oggetto della procedura di Drag sono afferenti ad un'immagine (e non un testo);
  • nella routine dell'evento Drop si assegnerà all'altra PictureBox, che scatena il predetto Drop, i dati dell'immagine oggetto del Drag.
Public Sub Form_Open()  

' Attiviamo la capacità della "PictureBox1" di ricevere con il "_Drop()" l'immagine trascinata:
 PictureBox1.Drop = True

 PictureBox2.Picture = Picture.Load("/percorso/del/file/immagine")

End

Public Sub PictureBox2_MouseDrag()  

' Preleviamo e trasciniamo l'immagine dalla "PictureBox2":
  Drag.Icon = Last.Picture    
  Last.Drag(Last.Picture.Image)
' ...o anche:
' Last.Drag(Drag.Icon.Image)

End  

Public Sub PictureBox1_Drop()  

' Rilasciamo l'immagine nella "PictureBox1":
 PictureBox1.Picture = Drag.Data.Picture  

End


Note

[1] Vedere anche:
- Drag&Drop
- Drag-Drop di un testo in una DrawingArea
- Drag-Drop di un'immagine in una DrawingArea
- Drag-Drop di un'immagine in una cella di una GridView
- Drag-Drop di un testo da una cella di una GridView ad una cella di un'altra GridView
- Spostare oggetti con il mouse all'interno di un contenitore mediante Drag&Drop