none
Mantener foco y seleccion de un datagridview RRS feed

  • Pregunta

  • Hola amigos, tengo un datagridview y dos botones que hacen actualizacion sobre la fila seleccionada. Ahora pude mantener la selección de la fila pero no la selección es decir por ejemplo: el dgv tiene 5 filas, selecciono la 4ta fila y le hago click en el boton acutalizar fila (que recarga y vuelve a dibujar la tabla) logro mantener la 4ta fila seleccionada despues de la actualización ahora vuelvo hacer click en el boton actualizar(sin hacer click en la tabla pues ya el foco esta en la 4ta fila), este hace la actualizacion sobre la primera fila  y no sobre la 4ta que quedo seleccionada.

    public void accionBoton(){
    
    // capturo el codigo de la fila seleccionada y realiza la accion
    EProducto temp = listOrdenDet.First(x => x.Producto.Codigo == dgv_Ventas.CurrentRow.Cells["Codigo"].Value.ToString()).Producto;
    .
    .
    .
    // capturo el index de la fila seleccionada
    int dgvIndex = dgv_Ventas.CurrentCell.RowIndex;
    cargarTabla();
    // asigno el foco a la fila
    dgv_Ventas.Rows[dgvIndex].Selected= true;
    }
    
    public void cargarTabla(){
    // Actualizo y refresco la tabla
    .
    .
    .
    
    //quito el foco de la primera fila
    dgv_Ventas.Rows[0].Selected = false;
    } 

    al parecer solo funciona la seleccion de la fila al hacer click sobre el datagridview

    viernes, 20 de julio de 2018 16:29

Respuestas

  • Hola Novatoj,

    [-] ... al parecer solo funciona la selección de la fila al hacer click sobre el datagridview ..

    Lo que pasa es que estás seleccionando la fila pero no estás asignándola como celda activa, tendrías que utilizar la propiedad CurrentCell para especificar que la celda según el índice sea la activa, esto después de seleccionar la fila, algo como :

    int dgvIndex = dgv_Ventas.CurrentRow.Index;
    cargarTabla();
    
    //Seleccionamos la fila
    dgv_Ventas.Rows[dgvIndex].Selected = true;
    
    //Asignamos como celda activa
    dgv_Ventas.CurrentCell = dgv_Ventas[0, dgvIndex];

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Novatoj viernes, 20 de julio de 2018 20:40
    viernes, 20 de julio de 2018 18:55

Todas las respuestas

  • Hola Novatoj,

    [-] ... al parecer solo funciona la selección de la fila al hacer click sobre el datagridview ..

    Lo que pasa es que estás seleccionando la fila pero no estás asignándola como celda activa, tendrías que utilizar la propiedad CurrentCell para especificar que la celda según el índice sea la activa, esto después de seleccionar la fila, algo como :

    int dgvIndex = dgv_Ventas.CurrentRow.Index;
    cargarTabla();
    
    //Seleccionamos la fila
    dgv_Ventas.Rows[dgvIndex].Selected = true;
    
    //Asignamos como celda activa
    dgv_Ventas.CurrentCell = dgv_Ventas[0, dgvIndex];

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Novatoj viernes, 20 de julio de 2018 20:40
    viernes, 20 de julio de 2018 18:55
  • Gracias mi amigo... 
    viernes, 20 de julio de 2018 20:40