[SOLUCIONADO] Error al momento de editar el datagridview en otro Form

Iniciado por Alejandro_99, Enero 18, 2013, 06:51:50 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Enero 18, 2013, 06:51:50 PM Ultima modificación: Julio 02, 2014, 05:43:33 AM por blackdrake
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):
Código: vbnet

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):
Código: vbnet

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:

Código: vbnet

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:

Código: vbnet
Frmcentrales.dgvlista.SelectedRows(edit).Cells(2).Value = textsolicitante.Text


Cual podria ser la causa del problema o que me recomiendan???

Enero 18, 2013, 07:20:41 PM #1 Ultima modificación: Enero 18, 2013, 07:29:49 PM por RandomSoft
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
El Lenguaje es la Ciudad para cuya Edificación cada Ser Humano ha Aportado una Piedra

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