Alguien sabe como colocar el número de fila agregada en el encabezado
automáticamente.
Actualmente tengo una columna Autoincrement en el DataTable origen de
datos, pero al eliminar una fila, el consecutivo se descontrola.
Ejemplo:
Agrego fila 1
Agrego fila 2
Elimino fila 1
Agrego otra fila pero esta queda con el valor 3
Gracias
Diego M Romero
Hola, Diego:
Ese es el clásico comportamiento de las columnas autonuméricas. Lo único que
se me ocurre es que, en lugar de utilizar valores autonuméricos, utiliza un
tipo de dato entero para la columna, cuyos valores tendrás que
especificárselos manualmente para que simule una columna autonumérica.
Para enumerar todas las columnas existentes actualemtne en el control
DataGridView, puedes utilizar el siguiente bucle:
For n = 0 To DataGridView1.Rows.Count - 1
Dim dr As DataGridViewRow = Me.DataGridView1.Rows(n)
dr.Cells(0).Value = n + 1
Next
Pero para ello, tendrías que ocultar los encabezados de las filas del
control, y hacer que la primera columna del control simule el encabezado de
las filas. Por ejemplo, en el evento «Load» del formulario ejecutarías algo
parecido a lo siguiente:
With Me.DataGridView1
.RowHeadersVisible = False
.AllowUserToAddRows = False
.Columns(0).DefaultCellStyle = .RowHeadersDefaultCellStyle
.Columns(0).HeaderText = String.Empty
.Columns(0).Width = .RowHeadersWidth
.Columns(0).ReadOnly = True
End With
Al ser la primera columna de sólo lectura, tendrás que añadirle el número de
la fila correspondiente cuando el usuario vaya añadir nuevas filas, y
ejecutar el bucle para renumerar las filas, cuando el usuario elimine
cualquiera de ellas.
Un saludo
--
Enrique Martínez
[MS MVP - VB]
Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.