Pasar filas de un DataGridView a otro con DataGridViewCheckBoxCell

Gracias a esta página pude encontrar una solución a mi problema
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