[ Foro de C# ]

ScrollBar DataGridView

12-Jul-2014 00:03
Adan Lopez
4 Respuestas

Se puede enlazar un control VScrollBar a un DataGridView?


12-Jul-2014 21:46
Nacho Cabanes (+30)

Tu DataGridView debería tener una propiedad ScrollBars, que puede tener valores como "Vertical" o "Both":

 
miDataGridView.ScrollBars = Windows.Forms.ScrollBars.Vertical
 




14-Jul-2014 19:04
Adan Lopez

Que tal, una disculpa por no poner mas especificaciones, lo que pasa es que necesito ampliar el ancho del scrollbar y no e podido lograrlo, lo que hice fue desactivar el srcoll de mi DataGridView y agregue un objeto vScrollBar para que hiciera esta función.
Hasta ahorita me a funcionado con este código.

Saludos.

vScrollBar1.Maximum = dataGridView1.Rows.Count;
private void vScrollBar1_ValueChanged(object sender, EventArgs e)
{
           if (vScrollBar1.Value < dataGridView1.Rows.Count)
               dataGridView1.FirstDisplayedScrollingRowIndex = vScrollBar1.Value;

           if (vScrollBar1.Value == vScrollBar1.Maximum)
               dataGridView1.FirstDisplayedScrollingRowIndex = vScrollBar1.Value-1;
}


19-Jul-2014 11:29
Nacho Cabanes (+30)

Creo que te estás complicando de forma innecesaria. Para mí, es preferible una "barra de scroll estrecha" a rehacer algo que ya existe en el sistema, con la posibilidad de bugs que eso conlleva.

Aun así, el "ValueChanged" del ScrollBar sólo te soluciona en un sentido: desplaza en el DtaGrid si haces clic en el ScrollBar, pero te faltaría implementar el paso contrario: que al desplazarte en el DataGrid o cambiar los datos, también se actualizara.


21-Jul-2014 17:19
Adan Lopez

Tienes razón falta implementar ese punto, lo que pasa es que va a ser una aplicación muy sencilla en una pantalla táctil y el scroll que ya viene en este objeto es muy estrecho para manipularlo con el dedo, por eso agregue el vScrollBar, lo hice de un tamaño considerable mas no exagerado y ya una vez que el usuario tiene identificado lo que necesita solo da dos toques ( doble click) al dato que necesita ( renglón) y listo.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)