Numéroter les lignes RowHeader d'un DataGridView

Fermé
Utilisateur anonyme - Modifié par MicDundee le 2/08/2013 à 14:45
 Utilisateur anonyme - 22 sept. 2013 à 05:59
Salut !
Je vous donne le truc pour numéroter les lignes d'un DataGridView en VB 2008.

HeaderCell.Value doit être obligatoirement du texte donc nous allons faire une transformation de la variable I "Integer" en "String" : CStr(...)

Dim I As Integer

DataGridView1.RowHeadersVisible = True
DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders

For I = 0 To DataGridView1.RowCount - 1
      If DataGridView1.Rows(I).IsNewRow = True Then Exit For
      DataGridView1.Rows(I).HeaderCell.Value = CStr(I + 1)
      DataGridView1.Rows(I).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
Next

J'ai mis CStr(I + 1) pour qu'il commence à 1 et non pas à zéro. :)
Si vous mettez "DataGridView1.Rows(I).HeaderCell.Value = I+1" vous ne verrez rien.
Voilà. En espérant vous avoir aider.

3 réponses

Kalissi Messages postés 218 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 15 juillet 2019 20
16 sept. 2013 à 19:34
Bonjour,

Noter que l'instruction "Cstr" est une instruction qui vient du VB6

Compatibilité oblige, .Net reconnait l'instruction.

Porposition :
Il serait souhaitable d'utiliser une instruction VB.Net

Convert.ToString(I + 1)

K
0
Kalissi Messages postés 218 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 15 juillet 2019 20
16 sept. 2013 à 19:39
suite :

Il en est de même pour la déclaration :

Dim I as Integer

Si vous tapez l'instruction :

Convert.

Vous verrez que le mot Interger n'y figure pas, c'est Int32

tout comme

Dim I As Long

Convert.ToInt64

Vous ne trouverez pas

Convert.ToLong

K
0
Re : Pour une bonne comptabilité du projet avec VB 2008 ou VB 2012, faites comme ceci :
Dim I As Int32
DataGridView1.Columns.Add("Test", "Test")
DataGridView1.RowHeadersVisible = True
DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders
For I = 0 To 10
DataGridView1.Rows.Add()
Next
For I = 0 To DataGridView1.RowCount - 1
If DataGridView1.Rows(I).IsNewRow = True Then Exit For
DataGridView1.Rows(I).HeaderCell.Value = Convert.ToString(I + 1)
DataGridView1.Rows(I).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
Next

Pour résumer, Int32 remplace Integer et Convert.ToString remplace CStr.
0