Avevo già dato uno sguardo ai link che gentilmente mi avete postato, non riuscendo ad ottenere l'ordinamento da me voluto. Provo con la DataGridView.
Nella Load della form ho popolato la DataGridView con 20 righe:
DataGridView1.Rows.Add(20)
For i As Integer = 0 To 20
DataGridView1.Item(0, i).Value = ""
If CStr(i).Length = 1 Then
DataGridView1.Item(0, i).Value = "0" & i
Else
DataGridView1.Item(0, i).Value = i
End If
Next
e nel click di un pulsante ho messo:
Dim newColumn As DataGridViewColumn
If DataGridView1.Columns.GetColumnCount(DataGridViewElementStates.Selected) = 1 Then
newColumn = DataGridView1.SelectedColumns(0)
Else
newColumn = Nothing
End If
Dim oldColumn As DataGridViewColumn = DataGridView1.SortedColumn
Dim direction As System.ComponentModel.ListSortDirection
' If oldColumn is null, then the DataGridView is not currently sorted.
If oldColumn IsNot Nothing Then
' Sort the same column again, reversing the SortOrder.
If oldColumn Is newColumn AndAlso DataGridView1.SortOrder = _
SortOrder.Ascending Then
direction = System.ComponentModel.ListSortDirection.Descending
Else
' Sort a new column and remove the old SortGlyph.
direction = System.ComponentModel.ListSortDirection.Ascending
oldColumn.HeaderCell.SortGlyphDirection = SortOrder.None
End If
Else
direction = System.ComponentModel.ListSortDirection.Ascending
End If
' If no column has been selected, display an error dialog box.
If newColumn Is Nothing Then
MessageBox.Show("Select a single column and try again.", _
"Error: Invalid Selection", MessageBoxButtons.OK, _
MessageBoxIcon.Error)
Else
<b>DataGridView1.Sort(newColumn, direction)</b>
If direction = System.ComponentModel.ListSortDirection.Ascending Then
newColumn.HeaderCell.SortGlyphDirection = SortOrder.Ascending
Else
newColumn.HeaderCell.SortGlyphDirection = SortOrder.Descending
End If
End If
Solo che mi da errore sulla riga in grassetto: "L'oggetto deve essere di tipo String."
Avete qualche idea?
Ciao e grazie