Hola, cuando selecciono una fila del datagridview y luego presiono el botón editar se abre otro formulario aparte donde se llenan unos textbox con los registros de dicha fila. Donde luego puedo editar los registros, pero cuando presiono el botón aceptar para que se aplique la modificación al datagridview me sale el siguiente error:
El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección.
Nombre del parámetro: index
Codigo completo:
Codigo del boton editar del Form 1 (Frmcentrales):
Private Sub cmdeditar_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdedit2.Click
frmedicionderegistros.lblid.Text = Me.dgvlista.CurrentRow.Cells(1).Value.ToString
frmedicionderegistros.textsolicitante.Text = Me.dgvlista.CurrentRow.Cells(2).Value.ToString
frmedicionderegistros.editfecha.Value = Me.dgvlista.CurrentRow.Cells(3).Value.ToString
frmedicionderegistros.textcentral.Text = Me.dgvlista.CurrentRow.Cells(4).Value.ToString
frmedicionderegistros.Textcant.Text = Me.dgvlista.CurrentRow.Cells(5).Value.ToString
frmedicionderegistros.Textgas.Text = Me.dgvlista.CurrentRow.Cells(6).Value.ToString
frmedicionderegistros.Textmotivo.Text = Me.dgvlista.CurrentRow.Cells(7).Value.ToString
frmedicionderegistros.ShowDialog(Me)
End Sub
Codigo del boton aceptar del Form 2 (frmedicionderegistros):
Private Sub cmdaceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim edit As Integer
edit = Frmcentrales.dgvlista.CurrentCell.RowIndex
Frmcentrales.dgvlista.SelectedRows(edit).Cells(2).Value = textsolicitante.Text
Frmcentrales.dgvlista.SelectedRows(edit).Cells(3).Value = editfecha.Value
Frmcentrales.dgvlista.SelectedRows(edit).Cells(4).Value = textcentral.Text
Frmcentrales.dgvlista.SelectedRows(edit).Cells(5).Value = Textcant.Text
Frmcentrales.dgvlista.SelectedRows(edit).Cells(6).Value = Textgas.Text
Frmcentrales.dgvlista.SelectedRows(edit).Cells(7).Value = Textmotivo.Text
Me.Close()
End Sub
En este sector sale el error:
Private Sub cmdaceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim edit As Integer
edit = Frmcentrales.dgvlista.CurrentCell.RowIndex
Frmcentrales.dgvlista.SelectedRows(edit).Cells(2).Value = textsolicitante.Text
Frmcentrales.dgvlista.SelectedRows(edit).Cells(3).Value = editfecha.Value
Frmcentrales.dgvlista.SelectedRows(edit).Cells(4).Value = textcentral.Text
Frmcentrales.dgvlista.SelectedRows(edit).Cells(5).Value = Textcant.Text
Frmcentrales.dgvlista.SelectedRows(edit).Cells(6).Value = Textgas.Text
Frmcentrales.dgvlista.SelectedRows(edit).Cells(7).Value = Textmotivo.Text
Me.Close()
End Sub
y el error sale en esta linea:
Frmcentrales.dgvlista.SelectedRows(edit).Cells(2).Value = textsolicitante.Text
Cual podria ser la causa del problema o que me recomiendan???
Cuanto equivale la variable "edit"??? no veo el valor que le asignas
PD: Upss, recien acabo de notar el valor que le das, pero el error esta en el exceso de los campos.
- Por que no intentas empezar desde: Frmcentrales.dgvlista.SelectedRows(edit).Cells(0).Value = textsolicitante.Text, caso contrario intenta empezar desde: Frmcentrales.dgvlista.SelectedRows(edit).Cells(1).Value = textsolicitante.Text
Cual es el modificador de acceso del datagridview en el Form al que tratas de modificar? Ten en cuenta que si es Private o Protected en la forma que lo estas haciendo no podrias.
Saludos amigo, yo te sugiero que crees todas tus funciones en clases o modulos dentro de tu mismo proyecto, NOMBRE-FUNCION, ahora si te das cuenta tambien comienzas con 1 y el valor inicar si es tu caso debe ser (0)(1) etc etc.
Evidentemente estás solicitando una columna que no existe. Fijate que el enlace a datos sea correcto y que exista la columna que solicitás. Recordá que todo arreglo comienza en (0) y no en (1). Saludos.-
CrazyKade