Principales respuestas
el indice estaba fuera del intervalo. debe ser un valor no negativo o inferior al tamaño de la coleccion

Pregunta
-
Hola al cargarse mi gridview, si selecciono todo el renglón no me marca ningún error, pero si intento seleccionar una sola celda me marca ese error, me marca el error siempre en la parte subrayada, e agregue la variable "a" para que me contara los renglones y al momento de debug me marca 7 pero no se cual sea el problema o que deba de hacer, GRACIAS POR SU AYUDA
Private Sub datalistado_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles datalistado.CellClick
Dim a = datalistado.Rows.Count()
txtidcliente.Text = datalistado.SelectedCells.Item(1).Value
txtnombre.Text = datalistado.SelectedCells.Item(2).Value
txtapellidos.Text = datalistado.SelectedCells.Item(3).Value
txtdireccion.Text = datalistado.SelectedCells.Item(4).Value
txttelefono.Text = datalistado.SelectedCells.Item(5).Value
txtdni.Text = datalistado.SelectedCells.Item(6).Value
btneditar.Visible = True
btnguardar.Visible = False
End Sub
Respuestas
-
que pasa si usas
Private Sub datalistado_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles datalistado.CellClick If datalistado.CurrentRow Is Nothing Then Return End If Dim row As DataGridViewRow = datalistado.CurrentRow txtidcliente.Text = row.Cells(1).Value txtnombre.Text = row.Cell(2).Value txtapellidos.Text = row.Cell(3).Value txtdireccion.Text = row.Cell(4).Value txttelefono.Text = row.Cell(5).Value txtdni.Text = row.Cell(6).Value btneditar.Visible = True btnguardar.Visible = False End Sub
trabaj con la row seleccionada
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Editado Leandro TuttiniMVP martes, 26 de noviembre de 2013 22:07
- Marcado como respuesta Omar Ortiz miércoles, 27 de noviembre de 2013 19:38
Todas las respuestas
-
Debe ser porque tenes seleccionada una sola celda, de todas maneras no entiendo muy bien qué es lo que querés hacer.
datalistado.SelectedCells.Item(1).Value
Lo que le estas diciendo ahí es que seleccionaste un grupo de celdas y querés obtener el valor de la segunda (la primera sería .Item(0)) y al tener una sola celda seleccionada te va a dar ese error.
Imagino que lo que querés hacer es seleccionar un registro en la grilla y mostrarlo en cajas de texto, si es esto entonces probá este código:
txtidcliente.Text = datalistado.CurrentRow.Cells(0).Value txtnombre.Text = datalistado.CurrentRow.Cells(1).Value txtapellidos.Text = datalistado.CurrentRow.Cells(2).Value txtdireccion.Text = datalistado.CurrentRow.Cells(3).Value txttelefono.Text = datalistado.CurrentRow.Cells(4).Value txtdni.Text = datalistado.CurrentRow.Cells(5).Value
Si esto no es lo que buscabas, intenta aportar un poco más de información.
Saludos.
-
que pasa si usas
Private Sub datalistado_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles datalistado.CellClick If datalistado.CurrentRow Is Nothing Then Return End If Dim row As DataGridViewRow = datalistado.CurrentRow txtidcliente.Text = row.Cells(1).Value txtnombre.Text = row.Cell(2).Value txtapellidos.Text = row.Cell(3).Value txtdireccion.Text = row.Cell(4).Value txttelefono.Text = row.Cell(5).Value txtdni.Text = row.Cell(6).Value btneditar.Visible = True btnguardar.Visible = False End Sub
trabaj con la row seleccionada
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Editado Leandro TuttiniMVP martes, 26 de noviembre de 2013 22:07
- Marcado como respuesta Omar Ortiz miércoles, 27 de noviembre de 2013 19:38
-