DataGridView et Datatable -> paramétrage des colonnes ?
Bonjour à tous
Je suis débutant avec Visual Studio que je souhaite utiliser en vb, car très expérimenté en vba.
Je parviens à charger dans un datagridview le contenu d'un fichier csv en passant par une datatable
Si je définis par avance la structure du datagridview (les colonnes, leur noms...), le binding du datatable ajoute quand même des colonnes au datagridview.
Si je ne définis pas la structure, je n'arrive pas à trouver comment agir une fois le datagridview alimenté par le datatable.
Ce que je souhaite, c'est pouvoir paramétrer les colonnes chargées depuis la datatable.
Par exemple, je veux que la colonne date du datatable soit colorée en vert dans le datagridview.
J'imagine que ça ne se paramètre pas dans le datatable ?
Voici mon code (où la structure du datagridview n'est pas définie à l'avance)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim csvPath As String = "C:\itunes\test.csv"
'Create a DataTable.
Dim dt As New DataTable()
' Create typed columns in the DataTable.
dt.Columns.Add("Dep", GetType(Char))
dt.Columns.Add("Date", GetType(DateTime))
dt.Columns.Add("P", GetType(Integer))
dt.Columns.Add("T", GetType(Integer))
dt.Columns.Add("Classe", GetType(String))
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\itunes\test.csv")
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(";")
Dim currentRow As String()
Dim numCol As Integer
While Not MyReader.EndOfData
dt.Rows.Add()
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
numCol = 0
For Each currentField In currentRow
dt.Rows(dt.Rows.Count - 1)(numCol) = currentField
numCol = numCol + 1
Next
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message &
"is not valid and will be skipped.")
End Try
End While
Dim bs As New BindingSource
bs.DataSource = dt
DG1.DataSource = bs
End Using
End Sub |
merci !
PS : les nombreuses réponses trouvées sur le web sont essentiellement pour du C#, pas du VB. Est-ce un mauvais choix de ma part ?