Non è un bug...ma ignoranza mia...il datagridview considera i dati come testo e non come valore.
Ho googlato un pò e per risolvere non ho trovato altra soluzione che quella di usare un dataset e specificare il tipo di dati della colonna, esempio:
codice:
Imports System.ComponentModel
Public Class Form1
Dim ds As New Data.DataSet
Private Sub Form1_Load() Handles MyBase.Load
ds.DataSetName = "prova"
ds.Tables.Add("colonne")
ds.Tables("colonne").Columns.Add("numero")
ds.Tables("colonne").Columns("numero").DataType = System.Type.GetType("System.Decimal")
ds.Tables("colonne").Columns.Add("testo")
DataGridView1.DataSource = ds.Tables(0)
End Sub
Private Sub Button1_Click() Handles Button1.Click
DataGridView1.Sort(DataGridView1.Columns("numero"), ListSortDirection.Descending)
End Sub
Private Sub Button2_Click() Handles Button2.Click
DataGridView1.Sort(DataGridView1.Columns("numero"), ListSortDirection.Ascending)
End Sub
End Class
Con il dataset puoi anche salvare i dati e caricarli.