C# - [DataGridView] - Pasar Registros entre Grillas
Problema: Tengo dos formularios, cada uno con un grid. Necesito pasar los datos del grid del form1 al form2, pero solo los registros que estén seleccionados por la columna DataGridViewCheckBoxCell.
Solución: La que indica la página de referencia, pero en VB.Net.
Como indica en el link, existen dos formas de añadir los datos, dependiendo de si están los datos enlazados o no al grid de origen. En mi caso, los datos no están enlazados, y lo hice de la siguiente manera.
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles button1.Click 'Se define una lista temporal de registro seleccionados Dim FilasSeleccionadas As New List(Of DataGridViewRow)() 'Se recorre cada registro del grid de origen For Each row As DataGridViewRow In DataGridView1.Rows 'Se recupera el campo que representa el checkbox, 'se valida que esté seleccionado y agregándolo a la lista temporal Dim cellSelecion As DataGridViewCheckBoxCell = _ TryCast(row.Cells("Seleccion"), DataGridViewCheckBoxCell) If Convert.ToBoolean(cellSelecion.Value) Then FilasSeleccionadas.Add(row) End If Next 'Se agrega el ítem seleccionado al grid de destino 'eliminando la fila del grid original For Each row As DataGridViewRow In FilasSeleccionadas DataGridView2.Rows.Add(row.Cells("campo1").Value, row.Cells("campo2")) DataGridView1.Rows.Remove(row) Next End Sub