Spostare un'immagine da una cella a un'altra di una GridView senza Drag&Drop
Da Gambas-it.org - Wikipedia.
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