non è meglio usare le listview (componets-> Microsoft windows common Controls 6.0 ) ???

codice:
'   ListView1.ListItems.Clear                           
'   ListView1.ColumnHeaders.Clear
   ListView1.ColumnHeaders.Add , , "Numero", ListView1.Width / 6
   ListView1.ColumnHeaders.Add , , "Uso", ListView1.Width / 3
   ListView1.ColumnHeaders.Add , , "Servizi linea", (ListView1.Width / 1.9) - (30 + 255)
   ListView1.BorderStyle = ccFixedSingle
   ListView1.View = lvwReport

Dim con As String     'Dimensiono la variabile con per memorizzare i servizi della linea
Dim mItem As ListItem 'Dimesiono la variabile x creare le colonne della listview
Dim ind As Integer    'dimensiono la variabile per assegnare un index alla listview
ind = 0               'e lo setto a zero
Do While linea.EOF = False 'Scorro tutta la query
   ind = ind + 1  
   Set mItem = ListView1.ListItems.Add(, , CStr(linea(0))) 'setto la variabile x inserimento col e inseriscoil 1° valore
   mItem.ListSubItems.Add , , CStr(linea(1))       'inserisco la prima subcolonna
   mItem.ListSubItems.Add , , CStr(linea(2))               'inserisco anche la seconda
   ListView1.ListItems(ind).Tag = linea("idlinea") 'inserisco l'id della linea per poterla aprire
   linea.movenext
loop