Podemos hacerlo de forma numérica, con un contador, o recorrer los objetos de tipo fila que componen el objeto DataGrid, o bien las celdas que componen cada objeto fila
Recorrer el DataGrid por lo tanto podría ser:
Dim X As Integer
Dim Fila As DataGridViewRow
For X = 0 To DataGrid.Rows.Count – 1
Fila = DataGrid.Rows(X)
Next
Y si deseamos recorrer las columnas de una fila.
Digamos que de la forma más clásica sería como el ejemplo que sigue:
Dim X As Integer
Dim Y As Integer
Dim Fila As DataGridViewRow
Fila = DataGrid.Rows(X)
For Y = 0 To Fila.Cells.Count – 1
Next
Y utilizando el bucle del tipo para cada objeto en la Fila, como vemos a continuación:
Dim X As Integer
Dim Fila As DataGridViewRow
Dim Celda As DataGridViewCell
Fila = DataGrid.Rows(X)
For Each Celda In Fila.Cells
Next
Ahora solo queda llenar el bucle.
En realidad el intercambio de filas no es posible, así tal cual.
Lo que pasa es que podemos crear objetos fila que sean iguales y no visualizarlos completos en un DataGrid, o en un ListBox, y a partir de ahí apoyándonos en un objeto DataTable, usando el método ImportRow trasvasar objetos fila de una tabla a otra.
Private Sub Anyadir()
Dim Campos(3) As Object
Dim Fila As DataRow
Dim Fecha As String
Fila = Tabla.Rows.Find(Lista02.SelectedValue)
TablaGrid.ImportRow(Fila)
Campos(0) = Fila.Item("Numero").ToString
Campos(1) = Fila.Item("Vencimiento").ToString
Campos(2) = Fila.Item("NomSocio").ToString
Campos(3) = Fila.Item("Importe").ToString
DataGrid.Rows.Add(Campos)
Tabla.Rows.Remove(Fila)
End Sub
Y el complemento sería el paso inverso que sería:
Private Sub Quitar()
Dim Fila As DataRow
Try
Fila = TablaGrid.Rows.Find(DataGrid.Item(0, DataGrid.CurrentCellAddress.Y).Value.ToString)
Tabla.ImportRow(Fila) ' Traspasamos del grid a la tabla de listbox
DataGrid.Rows.Remove(DataGrid.CurrentRow)
TablaGrid.Rows.Remove(Fila)
Catch ex As NullReferenceException
End Try
End Sub
El sistema se basa en la existencia de un objeto DataTable, para cada objeto, y lo que hacemos es compatibilizarlos, por decirlo de alguna manera.
Si añadimos en la TablaGrid, quitamos de la Tabla del ListBox.
TablaGrid.ImportRow(Fila)
Tabla.Rows.Remove(Fila)
Y al revés, si añadimos a la tabla del ListBox, quitamos de la tabla del DataGrid.
Tabla.ImportRow(Fila) ' Traspasamos del grid a la tabla de listbox
TablaGrid.Rows.Remove(Fila)
Las tablas se pueden igualar a partir de una de ellas
CargaLista(Lista, Adaptador, Tabla)
TablaGrid = Tabla.Clone
De forma que creamos una estructura idéntica en las dos.
En el procedimiento ya existe todo el código necesario para cargar la tabla y los datos en el ListBox.
Síguenos en: Facebook Sobre aulaClic Política de Cookies