Como puedo posicionar el ‘CurrentCell’ de mi DataGridView

Que nadie se lo tome a mal! Pero después de reírnos un rato, nos encontramos a menudo perdiendo la tarde en búsqueda de cómo realizar las cosas más sencillas. Intentando dar respuesta a la repetida pregunta de cómo posicionarnos dentro de nuestro DataGridView… Ahí va la respuesta:

Dim Columna As Integer = 0, Fila As Integer = 0
Me.DataGridView1.CurrentCell = _
   Me.DataGridView1(Columna, Fila)

La de tumbos que a veces damos, porque creo que difícil no es! J
Saludos,
Pep Lluis,

19 pensamientos en “Como puedo posicionar el ‘CurrentCell’ de mi DataGridView”

  1. oye buen blogs man, oye una pregunta estyo haciendo un programa de facturacion agrege un datagridview enlazada a mi base de datos, quiero poner un campo de busqueda como puedo programarlo para cuando le de un numero de factura a mi textbox1.text me posecione en el registro indicado, ayudame por favor

  2. Que tal pepLuis he estado chekando tu blog y me ha parecido de gran ayuda , quisiera consultarte sobre como puedo tomar el valor de la celda actual en donde estoy posicionado aplicando al codigo que describes, asi como si se puede de otra manera de como obtener el ultimo valor de un registro de una tabla.

    Gracias saludos.

  3. ‘ _|/_
    ‘ (o o)
    ‘+—-oOO-{_}-OOo——kino619—+

    Oye peplluis jamas imagine que con 2 lineas de codigo pudieras hacer algo que muchos han intentado hacer (incluso yo), por que en otros foros he encontrado codigos enormes para lograr hacer esto y al final de cuentas nunca me sirvieron

    Bien por ti…

  4. Pep. no me figura la propeidad CurrentCell
    Solo me figura: CurrentCellModified y CurrentcellVisible.

    Este es mi codigo:

    Private Sub PosicionarDataGrid_EnCelda(DG As
    DataGrid, Fila As Integer, Columna As Integer)
    ‘Los valores que traen Fila y Columna son 1 y 3 respectivamente
    Fila = 1
    Columna = 3
    DG.currentcell = DG(Columna, Fila)
    ‘Aquí debiera posicionarse,
    ‘pero no me aparece la Propiedad currentcell
    End Sub

  5. Private Sub PosicionarDataGrid_EnCelda(DG As DataGrid, Fila As Integer, Columna As Integer)
    ‘Los valores que traen Fila y Columna son 1 y 3 respectivamente
    Fila = 1
    Columna = 3
    DG.currentcell = DG(Columna, Fila)
    ‘Aquí debiera posicionarse,
    ‘pero no me aparece la Propiedad currentcell
    End Sub

  6. Private Sub PosicionarDataGrid_EnCelda(DG As DataGrid, Fila As Integer, Columna As Integer)
    ‘Los valores que traen Fila y Columna son 1 y 3 respectivamente
    Fila = 1
    Columna = 3
    DG.currentcell = DG(Columna, Fila)
    ‘Aquí debiera posicionarse,
    ‘pero no me aparece la Propiedad currentcell
    End Sub

  7. muchas gracias, ya me estaba dando dolor de cabeza hasta con la enmarañada ayuda de microsoft. en C# sería:

    Int16 xCelda = 0; // columna celda datagridview1
    Int16 yCelda = 0; // fila celda datagridview1

    xCelda = Convert.ToInt16(dataGridView1.CurrentCell.ColumnIndex.ToString());
    yCelda = Convert.ToInt16(dataGridView1.CurrentCell.RowIndex.ToString());

    this.dataGridView1.CurrentCell = this.dataGridView1[xCelda, yCelda];

  8. Yo si que di tumbos buscando como hacer esto, hasta tuve que recurrir al SendKeys.Send(» {TAB}{TAB}{TAB} …..n») hasta posicionar el foco en la celda. Gracias!!!!

  9. Querido PepLluis, gracias por tu aporte, mejor que el MSDN, que esta lleno de formalismos.

    Pep, cuando presiono [Enter] en un DataGridView, el foco se poseciona en la celda inmediata de abajo (Fila siguiente), cuando lo que quiero es que avance a la celda izquierda , y cunado llegue al final de la fila baje a la siguiente fila, espero ser lo más explicito posible.

    Gracias, por tu respuesta.

    1. ya encontre la solución con el evento CellEndEdit en Visual Studio

      SendKeys.Send(«{UP}»);

      Ahora ya puedo hacer subir el FOCO cuando Presiono [Enter]

      aquí pongo un pedazo del código para hacerme entender

      private void objDataGridView_elementos_documento_factura_CellEndEdit(object sender, DataGridViewCellEventArgs e)
      {

      if (e.ColumnIndex == 4)
      {

      //procesar.FilaActual = objDataGridView_elementos_documento_factura.CurrentRow.Index;

      /****************************************************
      *
      * SUBTOTAL
      *
      * Calcula en Subtotal en DataGridVIew,
      * usando el Evento CellEndEdit = Fin de Editar la Celda
      *
      ****************************************************/
      procesar.SubTotal(this);
      objDataGridView_elementos_documento_factura.CurrentCell = objDataGridView_elementos_documento_factura.CurrentRow.Cells[1];
      }
      else
      {
      if (
      objDataGridView_elementos_documento_factura.CurrentRow.Cells[1].Value != null
      &&
      objDataGridView_elementos_documento_factura.CurrentRow.Cells[4].Value == null
      )
      {
      string codigo = Convert.ToString(
      objDataGridView_elementos_documento_factura.CurrentRow.Cells[1].Value);

      procesar.pasar += new Procesos_Facturacion.delegado(pasar_datos);
      procesar.BuscarCodigo(codigo);

      /****************************************************
      *
      * Mueve el Foco del DaGridView ((Hacia Arriba)),
      * despues de presentar la información de la celda
      *
      * (( SendKeys.Send(«{UP}»); ))
      *
      ****************************************************/
      SendKeys.Send(«{UP}»);

      }
      if (objDataGridView_elementos_documento_factura.CurrentRow.Cells[3].Value != null
      &&
      objDataGridView_elementos_documento_factura.CurrentRow.Cells[4].Value != null)
      {
      SendKeys.Send(«{RIGHT}»);
      SendKeys.Send(«{UP}»);
      }
      }

      Le doy gracias a Dios, porque ya estaba por abandonar el proyecto…en C# con WindowsForm

  10. Muchas gracias, después de buscar por varios días, como hacer esto lo encontré en tu pagina, nuevamente muchas gracias.

    Dim Columna As Integer = 3, Fila As Integer = 0
    Me.DataGridView1.CurrentCell = _
    Me.DataGridView1(Columna, Fila)
    Me.DataGridView1.BeginEdit(True)

    de esta forma cae el foco en esta fila y columna y se queda editada y lista para escribir.

  11. Pp Luis gracias por el aporte, pero esas dos lineas de código no es suficiente, lo que hace es posicionarse en la celda indicada mas no pone el cursor en la celda. Como se podría hacer?

Responder a potoco Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *