Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/11/2009, 11:44
Avatar de eperedo
eperedo
 
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 15 años, 5 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