Foros del Web » Programación para mayores de 30 ;) » .NET »

Problemas con Scrollbar en Datagridview

Estas en el tema de Problemas con Scrollbar en Datagridview en el foro de .NET en Foros del Web. Hola a todos, mi problema es el siguiente: Trabajo con Vb .net y tengo un formulario con un datagridview el cual se recarga cada pocos ...
  #1 (permalink)  
Antiguo 10/11/2009, 08:55
 
Fecha de Ingreso: noviembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Problemas con Scrollbar en Datagridview

Hola a todos, mi problema es el siguiente:

Trabajo con Vb .net y tengo un formulario con un datagridview el cual se recarga cada pocos segundos. Como hay bastantes registros la scrollbar vertical sale para que nos podamos desplazar por el datagridview. El problema es que si bajo para ver los ultimos registros, al recargarse el datagrid al poco tiempo, me vuelve a colocar arriba del todo.

¿Habria forma de poder establecer el valor que tenia la scrollbar tras recargar los datos para que mantenga la vista en el mismo sitio? Hasta ahora no lo he conseguido.

Gracias anticipadas
  #2 (permalink)  
Antiguo 10/11/2009, 11:44
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Problemas con Scrollbar en Datagridview

Pues directamente forzar el scrollbar yo no lo he logrado, pero una forma de "solucionarlo" puede ser la siguiente:
Código vb.net:
Ver original
  1. Dim fila_seleccionada As Int32 = Me.DataGridView1.CurrentRow.Index
  2. actualizarDatos()
  3. Me.DataGridView1.FirstDisplayedScrollingRowIndex = fila_seleccionada
Esto mantendrá visible la última fila que el usuario ha seleccionado.

También podrías jugar con el evento Scroll aunque no es tan exacto o al menos no he podido implementarlo 100% a mi gusto :P

Código vb.net:
Ver original
  1. ActualizarDatos()
  2. Static i As Int32 = 0
  3. If Me.valor_barra = 0 Then
  4.         Me.DataGridView1.FirstDisplayedScrollingRowIndex = i
  5. Else
  6.         i = Me.valor_barra
  7.         Me.DataGridView1.FirstDisplayedScrollingRowIndex = Me.valor_barra
  8. End If

El evento Scroll tendría que tener este código
Código vb.net:
Ver original
  1. Private Sub DataGridView1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles DataGridView1.Scroll
  2.         Me.valor_barra = e.OldValue
  3. End Sub

la variable valor_barra debes declararla como private al inicio de la clase para que pueda ser accedida desde cualquier parte de la misma.
Lo que hago es asignarle a esta variable el valor con el que se quede el scrollbar y cuando se actualiza el código comprueba primero si es que realmente se ha producido algún movimiento en la barra y luego le índica el índice de la fila que deberá mostrar primero.

Es un poco tedioso quizá, pero puede servirte como inicio y logres lo que tu desees.
__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 11/11/2009, 04:32
 
Fecha de Ingreso: noviembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problemas con Scrollbar en Datagridview

Muchas gracias, me sirvió perfectamente.

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:21.