Spostare su e giù le righe di una GridView con i tasti "up" e "down"

Da Gambas-it.org - Wikipedia.

Per spostare su e giù le righe di una GridView con i tasti "up" e "down" della tastiera, cambiando così l'ordine iniziale delle righe, è possibile utilizzare opportunamente la funzione "Swap" all'interno della routine dell'evento _KeyPress( ) della Classe GridView, come nell'esempio pratico che segue:

Public Sub Form_Open()  
 
 Dim j As Byte  

 With GridView1  
   .Columns.Count = 3  
   .Rows.Count = 3  
 End With  
 
 With GridView1  
   .Header = 1  
   .Columns[0].Alignment = Align.Center  
   .Columns[0].Title = "Id"  
   .Columns[1].Alignment = Align.Center  
   .Columns[1].Title = "Nome"  
   .Columns[2].Alignment = Align.Center  
   .Columns[2].Title = "Altro"    
 End With  
 

 For j = 0 To 2  
   With GridView1[j, 0]  
     .Text = CStr(j)  
   End With  
   With GridView1[j, 1]  
     .Text = Chr(80 - j)  
   End With  
   With GridView1[j, 2]  
     .Text = CStr(Fix(Rnd(10, 50)))  
   End With  
 Next  
 
End


Public Sub GridView1_KeyPress()     [Nota 1]
 
 Dim i As Integer
 
  Select Case Key.Code
    Case Key.Up
      If GridView1.Row = 0 Then Return
      For i = 0 To GridView1.Columns.Max
        Swap GridView1[GridView1.Row, i].Text, GridView1[GridView1.Row - 1, i].Text    
      Next
      
    Case Key.Down
      If (GridView1.Row + 1) = GridView1.Rows.Count Then Return
      For i = 0 To GridView1.Columns.Max    
        Swap GridView1[GridView1.Row, i].Text, GridView1[GridView1.Row + 1, i].Text    
      Next
    End Select
 
End

Va fatto notare che è possibile scegliere quale riga sia il punto di riferimento dello spostamento, cliccandovi sopra con il mouse.



Note

[1] La presente routine-evento è stata proposta dai membri "Gianluigi" e "allegfede" del forum www.gambas-it.org