Vamos a hacer una pequeña pulida.
Como te dije, todos los objetos que van en cada línea de un ListView son en realidad Strings, y como tales los tienes que poner.
Pero además, cuando creas el ListViewItem, en realidad estás creando también el primer Subitem. Los demás dependen de él. Por eso, que vuelvas a poner el SubItem(0) es redundante.
Por otra parte, el problema de formato de fecha es un tema de regionalización de la PC (administrado por el Namespace System.Globalization), y del tipo de dato usado. En mi experiencia, es mejor indicar el formato manualmente para evitar errores, por ello esto funcionaría bien:
Código vb.net:
Ver original'%%%%%%%%%%%%%%%%%%%%%
'Relleno el ListView de medidas
'llenamos el ListView con las medidas
'%%%%%%%%%%%%%%%%%%%%%
' Propiedades del ListView
With lvInicioMedidas
.Items.Clear()
.Columns.Clear()
.View = View.Details
.GridLines = True
.FullRowSelect = True
' añadir los nombres de columnas
For c As Integer = 2 To TablaMedidas.Columns.Count - 1
.Columns.Add(TablaMedidas.Columns(c).Caption, 70, HorizontalAlignment.Center)
Next
End With
' Añadir los registros de la tabla
Dim fila As New ListViewItem()
Dim col1 As String
With TablaMedidas
For f As Integer = 0 To .Rows.Count - 1
'declaro la llamada a la columna uno
col1 = Convert.ToDateTime(TablaMedidas.Rows(f).Item(2)).ToString("dd/MM/yyyy")
' recorrer las columnas
fila = lvInicioMedidas.Items.Add(col1)
For c As Integer = 1 To .Columns.Count - 1
fila.SubItems.Add(TablaMedidas.Rows(f).Item(c).ToString())
Next
Next
End With