Spostare un'immagine da una cella a un'altra di una GridView senza Drag&Drop
Vai alla navigazione
Vai alla ricerca
Mostriamo un esempio di come spostare un'immagine da una cella a un'altra di una GridView senza usare le risorse del Drag&Drop.
Private cc As New Short[2]
Private pc As Picture
Public Sub Form_Open()
With GridView1
.Columns.Count = 3
.Rows.Count = 3
End With
GridView1[1, 0].Picture = Picture.Load("/percorso/del/file/immagine")
' Adeguiamo le dimensioni della cella alle dimensioni dell'immagine caricata:
GridView1.Rows[1].H = -1
GridView1.Columns[0].W = -1
End
Public Sub GridView1_Click()
cc[0] = GridView1.Row
cc[1] = GridView1.Column
' Preleviamo l'immagine individuando precisamente la cella della "GridView":
pc = GridView1.Current.Picture
End
Public Sub GridView1_MouseUp()
If (GridView1.RowAt(Mouse.Y) == -1) Then Return
' Se lo spostamento avviene da una cella vuota in una cella contenente dell'immagine, si esce da questa routine impedendo che l'immagine (se presente) della cella di arrivo sia cancellata.
' Altresì, se si clicca e si rilascia il mouse nella medesima cella, si esce da questa routine impedendo che l'immagine presente nella cella sia cancellata.
If IsNull(pc) Or ((GridView1.Row == cc[0]) And (GridView1.Column == cc[1])) Then Return
' Rilasciamo nella nuova cella della "GridView" l'immagine prelevata e trascinata dall'altra cella:
GridView1.Current.Picture = pc
' Adeguiamo le dimensioni della nuova cella alle dimensioni dell'immagine rilasciata:
GridView1.Rows[GridView1.Row].H = -1
GridView1.Columns[GridView1.Column].W = -1
' Cancelliamo l'immagine presente nella cella, dalla quale è stata trascinata:
GridView1[cc[0], cc[1]].Picture = Null
End