Para copiar datos de un DataGridView a otro entre Forms diferentes tenemos que copiarlos a un ArrayList y luego recuperarlos para añadir los valores a las celdas de la nueva fila
Copiar datos de un DataGridView a otro
- Primero tenemos que crear una Fila (en este caso rows) con DataGridViewRow
- Por cada fila que haya en el Grid de origen a copiar los datos (en este caso GridFacturaImprimir de la Clase1)
- Creamos una nueva fila con DataGridViewRow (myRow) y un ArrayList (datosRow)
- Lo que haremos será añadir al ArrayList los valores de las celdas de cada fila
- Añadir una nueva row al Grid destino de la copia (GridFactura)
- A esa nueva row (lo haremos con el índice actualizado para no liarla) le copiaremos los valores de las celdas que tenemos guardados de antes
- Cada valor en su posición correspondiente (si lleva el mismo orden)
Public Sub rellenarFactura()
Dim rows As DataGridViewRow
Dim index As Integer = 0
For Each rows In Clase1.GridFacturaImprimir.Rows
Dim myRow As DataGridViewRow = New DataGridViewRow
Dim datosRow As ArrayList = New ArrayList
datosRow.Add(rows.Cells(0).Value.ToString)
datosRow.Add(rows.Cells(1).Value.ToString)
datosRow.Add(rows.Cells(2).Value.ToString)
datosRow.Add(rows.Cells(3).Value.ToString)
GridFactura.Rows.Add(myRow)
index = (GridFactura.Rows.Count - 1)
GridFactura.Rows(index).Cells(0).Value = datosRow.Item(0).ToString
GridFactura.Rows(index).Cells(1).Value = datosRow.Item(1).ToString
GridFactura.Rows(index).Cells(2).Value = datosRow.Item(2).ToString
GridFactura.Rows(index).Cells(3).Value = datosRow.Item(3).ToString
Next
End Sub
Hola, me funciona perfecto, pero mi dgv tiene 6 columnas, y solo puedo agregar las primeras tres columnas, que pasará?
ResponderEliminarTal como lo expliqué deberáis poder añadir todas las filas sin problemas, si tienes hasta 6 columnas debería quedarte una cosa así:
EliminarGridFactura.Rows(index).Cells(0).Value = datosRow.Item(0).ToString
GridFactura.Rows(index).Cells(1).Value = datosRow.Item(1).ToString
GridFactura.Rows(index).Cells(2).Value = datosRow.Item(2).ToString
GridFactura.Rows(index).Cells(3).Value = datosRow.Item(3).ToString
GridFactura.Rows(index).Cells(4).Value = datosRow.Item(4).ToString
GridFactura.Rows(index).Cells(5).Value = datosRow.Item(5).ToString
y la clase1..cual es?
ResponderEliminaren c# como seria ? xfa ayudenme
ResponderEliminarPasar entre form1 a form2 en c#, un DGV NO he podido lograrlo como hacer???????????????
ResponderEliminar