none
Deseo sincronizar una barra de "scroll" vertical con con un control DataGridView pero no tengo idea por dónde empezar RRS feed

  • Pregunta

  • Sé que el DataGridView tiene su propia barra de scroll, pero yo deseo hacerlo manualmente agregando una barra de scroll independiente.

    Qué me sugieren para sincronizar la barra de manera que funcione igual a la que tiene el control DataGridView. Cualquier idea o sugerencia es bienvenida.



    • Editado James2016-2 jueves, 8 de octubre de 2020 21:18
    jueves, 8 de octubre de 2020 21:17

Respuestas

  • Hola James2016-2,

    puedes desplazarte (hacer scroll) en un DataGridView mediante programación con su propiedad llamada FirstDisplayedScrollingRowIndex. Así la podrías usar para desplazarte a una fila mediante programación, por ejemplo:

    //C#
    int jumpToRow = 20;
    if (dgv.Rows.Count >= jumpToRow && jumpToRow >= 1)
    {             
            dgv.FirstDisplayedScrollingRowIndex = jumpToRow;
            dgv.Rows[jumpToRow].Selected = true;
    }
     
    //VB.NET
    Dim jumpToRow As Integer = 20
    If dgv.Rows.Count >= jumpToRow AndAlso jumpToRow >= 1 Then
                dgv.FirstDisplayedScrollingRowIndex = jumpToRow
                dgv.Rows(jumpToRow).Selected = True
    End If
     

    Simplemente has que tu barra de navegación extra utilice este valor para ubicarse. Para la parte de la barra de navegación extra te dejo este tutorial. Acá puedes leer sobre como funciona el evento de scroll en el control DataGridView, te podría dar otras ideas de como asociar pragmáticamente tu segunda barra de scroll al DataGridView. Espero que te sea de ayuda. Por favor no olvides marcar una respuesta si resolviste tu consulta (debajo de cada post hay una opción que dice “Marcar como Respuesta”). Quedo pendiente de cualquier actualización. Gracias por levantar tu consulta en los foros de msdn.

    Saludos cordiales

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    viernes, 9 de octubre de 2020 0:16
    Moderador

Todas las respuestas

  • Hola James2016-2,

    puedes desplazarte (hacer scroll) en un DataGridView mediante programación con su propiedad llamada FirstDisplayedScrollingRowIndex. Así la podrías usar para desplazarte a una fila mediante programación, por ejemplo:

    //C#
    int jumpToRow = 20;
    if (dgv.Rows.Count >= jumpToRow && jumpToRow >= 1)
    {             
            dgv.FirstDisplayedScrollingRowIndex = jumpToRow;
            dgv.Rows[jumpToRow].Selected = true;
    }
     
    //VB.NET
    Dim jumpToRow As Integer = 20
    If dgv.Rows.Count >= jumpToRow AndAlso jumpToRow >= 1 Then
                dgv.FirstDisplayedScrollingRowIndex = jumpToRow
                dgv.Rows(jumpToRow).Selected = True
    End If
     

    Simplemente has que tu barra de navegación extra utilice este valor para ubicarse. Para la parte de la barra de navegación extra te dejo este tutorial. Acá puedes leer sobre como funciona el evento de scroll en el control DataGridView, te podría dar otras ideas de como asociar pragmáticamente tu segunda barra de scroll al DataGridView. Espero que te sea de ayuda. Por favor no olvides marcar una respuesta si resolviste tu consulta (debajo de cada post hay una opción que dice “Marcar como Respuesta”). Quedo pendiente de cualquier actualización. Gracias por levantar tu consulta en los foros de msdn.

    Saludos cordiales

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    viernes, 9 de octubre de 2020 0:16
    Moderador
  • Gracias.
    viernes, 9 de octubre de 2020 1:09