Originariamente inviato da elfocaotico
Ciao,
sapete come posso fare per spostare di una posizione una riga in una Flexgrid?
Faccio un esempio. Ho una Flexgrid1 con le seguenti righe:

- Milano
- Roma
- Torino
- Lucca
- Messina

vorrei che la riga 3 (Torino) alla pressione di un tasto (Sposta su) fosse posizionata prima di Roma (che sarebbe la riga 2) avendo poi come risultato:

- Milano
- Torino
- Roma
- Lucca
- Messina

Esiste un modo semplice per fare ciò?
Grazie in anticipo
Certo ! Vuoi scambiare la riga R con la precedente (R-1) ?
Basta che fai un ciclo per tutte le colonne della FlexGrid, all'interno del quale scambi il contenuto delle celle, accedendo col metodo TextMatrix...

Qualcosa tipo (non ho sottomano VB, ora, controlla che non ci siano sviste nei nomi delle proprieta' o altro...):
codice:
   ' r e' la riga da "swappare" con la precedente
   Dim c as Integer, x As Variant
   For c = 0 To FlexGrid1.Cols - 1
      x = FlexGrid1.TextMatrix(r, c)
      FlexGrid1.TextMatrix(r, c) = FlexGrid1.TextMatrix(r - 1, c)
      FlexGrid1.TextMatrix(r - 1, c) = x
   Next
...e anche meglio usare With che tutti quei FlexGrid1....

Ciao !