Sie sind auf Seite 1von 2

04-321-158264

seleccionar una fila de datagridview grdHoja.Rows(fila_que_queremos_seleccionar).Selected = True grdHoja.CurrentCell = grdHoja.Rows(fila_que_queremos_seleccionar).Cells(0)

************** Me.DataGridView1.ClearSelection() ********************* mover fila arriba abajo Mover fila en el DataGridView arriba y abajo con botn DataGridViewButtonColumn Problema: Tengo un grid con dos columnas tipo botn, un botn indica subir una fila y el otro botn indica bajar una fila. Debo mover las filas de arriba hacia abajo dependiendo del clic en su respectivo botn. Solucin: Despus de buscar por un buen rato en el internet, no encontr una forma dir ecta, as que tuve que realizar mi propia opcin. Nota: Mi DataGridView est enlazado a un BindingSource el cual est enlazado a un Da taTable (que enredo), lo que significa que los datos iniciales (los que se prese ntan en el grid) son fueron llenados originariamente en el DataTable, por lo que debo modificar directamente el DataTable. La accin de mover no es otra cosa que eliminar la fila actual e insertarla una po sicin arriba o abajo de la que se encontraba originariamente. 'Debo obtener la accin clic de la columna botn Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellC ontentClick 'Sirve para obtener el indice de la fila a mover Dim indice As Integer 'Se crea una nueva fila a partir de la DataTable que est enlazada al grid Dim dr As DataRow = DataTable.NewRow() 'Obtiene la posicion actual de la fila a moverse indice = DataGridView1.CurrentRow.Index 'Pregunto si se dio clic en la columna boton arriba If DataGridView1.Columns(e.ColumnIndex).Name = "arriba" Then 'Se encuentra en la parte superior del grid If indice = 0 Then Exit Sub End If 'Se deben de insertar los datos en la fila, campo x campo dr(0) = DataGridView1.Rows(indice).Cells("campo0").Value dr(1) = DataGridView1.Rows(indice).Cells("campo1").Value 'Primero se elimina la fila actual DataTable.Rows.RemoveAt(indice) 'Despus se inserta la fila copiada una posicin arriba DataTable.Rows.InsertAt(dr, indice - 1) 'Posiciona el foco en la posicion actual DataTable.CurrentCell = DataTable.Rows(indice - 1).Cells(0)

End If 'Se repiten los mismos pasos para la columna botn abajo 'Solo que se cambia el signo 'Click en la columna boton abajo If DataGridView1.Columns(e.ColumnIndex).Name = "abajo" Then 'Se encuentra en la parte inferior del grid If indice = DataGridView1.Rows.Count - 1 Then Exit Sub End If 'Se deben de insertar los datos en la fila, campo x campo dr(0) = DataGridView1.Rows(indice).Cells("campo0").Value dr(1) = DataGridView1.Rows(indice).Cells("campo1").Value 'Primero se elimina la fila actual DataTable.Rows.RemoveAt(indice) 'Despus se inserta la fila copiada una posicin abajo DataTable.Rows.InsertAt(dr, indice + 1) 'Posiciona el foco en la posicion actual DataTable.CurrentCell = DataTable.Rows(indice + 1).Cells(0) End If End Sub

Das könnte Ihnen auch gefallen