Spostare il testo da una cella a un'altra di una GridView senza Drag&Drop

Da Gambas-it.org - Wikipedia.

Mostriamo un esempio di come spostare il testo da una cella a un'altra di una GridView senza usare le risorse del Drag&Drop.

Private cc As New Short[2]
Private s As String


Public Sub Form_Open()

 With GridView1
   .Columns.Count = 3
   .Rows.Count = 3
 End With

 GridView1[1, 0].Text = "testo qualsiasi"
 GridView1.Columns[0].W = -1

End


Public Sub GridView1_Click()

 cc[0] = GridView1.Row
 cc[1] = GridView1.Column

' Preleviamo il testo, da trascinare, individuando precisamente la cella della "GridView":
 s = GridView1.Current.Text

End


Public Sub GridView1_MouseUp()

' Se lo spostamento avviene da una cella vuota in una cella contenente del testo, si esce da questa routine impedendo che il testo (se presente) della cella di arrivo sia cancellato.
' Altresì, se si clicca e si rilascia il mouse nella medesima cella, si esce da questa routine impedendo che il testo presente nella cella sia cancellato.
 If IsNull(s) Or ((GridView1.Row == cc[0]) And (GridView1.Column == cc[1])) Or (GridView1.RowAt(Mouse.Y) == -1) Then Return

' Rilasciamo nella nuova cella della "GridView" il testo prelevato dall'altra cella:
 GridView1.Current.Text = s

' Adeguiamo la larghezza della colonna della nuova cella al testo in essa rilasciato:
 GridView1.Columns[GridView1.Column].W = -1

' Cancelliamo il testo presente nella cella, dalla quale è stato trascinato:
 GridView1[cc[0], cc[1]].Text = Null

End