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 !