@vuott
l'evento giusto e' Sort...
Bravo Milio,
hai risolto -
come sempre - egregiamente il problema. Ehhh, ci vuole quello che ci vuole: non c'è niente da fare !
Allora, ho provato il tuo codice e ho capito anche come sollevare l'evento _
Sort. Ho avuto modo di comprendere meglio pure il metodo .Sorted dell'oggetto
Gridview. Riporto di seguito l'intero codice che ho usato per provare la tua soluzione (che è ovviamente ivi compresa):
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
' questo consente di sollevare l'evento _Sort scritto da Milio.
' Infatti se si omette, non funziona più.
' (E' possibile omettere " .Columns.Sort = 0 ": di default è la colonna num. 0):
With GridView1
.Sorted = True
.Columns.Sort = 0
End With
End
Public Sub GridView1_Sort() ' ora inizia il codice di Milio:
Dim Values, ValueSorted As New String[]
Dim Nx, iNx As Integer
Dim tmp As String
For Nx = 0 To GridView1.Rows.Max
Values.Add(GridView1[Nx, GridView1.Columns.Sort].Text)
Next
ValueSorted = Values.Copy()
ValueSorted.Sort(GridView1.Columns.Ascending)
For Nx = 0 To ValueSorted.Max
For iNx = 0 To GridView1.Columns.Max
Swap GridView1[Nx, iNx].Text, GridView1[Values.Find(ValueSorted[Nx], 0, Nx), iNx].Text
Next
Values.Clear()
For iNx = 0 To GridView1.Rows.Max
Values.Add(GridView1[iNx, GridView1.Columns.Sort].Text)
Next
Next
GridView1.Refresh()
End
Mi spiace,
Raffa50, di non esserti stato d'aiuto: capisco che t'ho fatto effettivamente perdere solo tempo con quei miei inutili messaggi.
Dobbiamo ringraziare Milio, che ha risolto la tua interessante questione: la sua efficace soluzione può davvero essere utile a tutti per ottenere quell'operazione con le
Gridview.
Io confermo con incrollabile fede:
dinnanzi a Milio io alzo le mani !
In allegato potete ammirare un'antica icona che rappresenta il maestro Milio che suggerisce la suddetta soluzione a Raffa50 e Vuott.