Numerar las líneas del encabezado de fila en un DataGridView

Usuario anónimo -  
 Usuario anónimo -
¡Hola!
Les doy el truco para numerar las líneas de un DataGridView en VB 2008.

HeaderCell.Value debe ser obligatoriamente texto, por lo que haremos una transformación de la variable I "Integer" a "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

He puesto CStr(I + 1) para que empiece en 1 y no en cero. :)
Si pones "DataGridView1.Rows(I).HeaderCell.Value = I + 1" no verás nada.
Eso es todo. Espero haberles ayudado.

3 respuestas

  1. Kalissi Mensajes publicados 221 Estado Miembro 20
     
    Hola,

    Tenga en cuenta que la instrucción "Cstr" es una instrucción que proviene de VB6

    Por compatibilidad, .Net reconoce la instrucción.

    Propuesta:
    Sería deseable utilizar una instrucción de VB.Net

    Convert.ToString(I + 1)

    K
    0
  2. Kalissi Mensajes publicados 221 Estado Miembro 20
     


    Lo mismo ocurre con la declaración:

    Dim I as Integer

    Si escribe la instrucción:

    Convert.

    Verá que la palabra Integer no aparece, es Int32

    así como

    Dim I As Long

    Convert.ToInt64

    No encontrará

    Convert.ToLong

    K
    0
  3. Usuario anónimo
     
    Re : Para una buena contabilidad del proyecto con VB 2008 o VB 2012, haz lo siguiente :
    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

    Para resumir, Int32 reemplaza a Integer y Convert.ToString reemplaza a CStr.
    0