2009-07-20 21 views
7

Como una pregunta similar a this question, también tengo una aplicación con DataGridView en ella. Me gustaría ubicar las filas de modo que una fila específica se encuentre en la parte inferior de la parte visible de la lista.¿Cómo coloco un DataGridView en una fila específica (para que la fila seleccionada esté en la parte inferior)?

Esto es en respuesta a un clic de botón que mueve una fila hacia abajo por uno. Quiero mantener la selección en la fila que estoy moviendo (ya tengo esta parte funcionando). Si hay muchas filas, la fila seleccionada podría moverse debajo del área visible. Quiero desplazarme hacia abajo hasta que esté en la parte inferior del área visible.

No parece haber un LastDisplayedScrollingRowIndex compañero de FirstDisplayedScrollingRowIndex.

¿Alguna idea? Gracias.

Respuesta

9

Como supongo, creo que necesito utilizar FirstDisplayedScrollingRowIndex y el número de filas visibles en DataGridView para calcular el nuevo FirstDisplayedScrollingRowIndex. Tal vez solo necesito saber cómo se llama la propiedad NumberOfVisibleRows?

Lo encontraste. DisplayedRowCount:

if (dataGridView.FirstDisplayedScrollingRowIndex + dataGridView.DisplayedRowCount(false) <= selectedRowIndex) 
{ 
    dataGridView.FirstDisplayedScrollingRowIndex = 
     selectedRowIndex - dataGridView.DisplayedRowCount(false) + 1; 
} 

Código probado y trabajando en mi propio proyecto.

5

El método DisplayedRowCount le dirá cuántas filas se muestran en la pantalla. Establezca el valor del parámetro en verdadero para incluir filas parciales.

var displayedRows = myDataGridView.DisplayedRowCount(false); 
+0

Gracias. Obtienes un voto favorable (aunque lo encontré yo mismo antes de ver tu respuesta) pero voy a establecer mi propia respuesta como aceptada ya que tiene una muestra de código de trabajo. –

+0

Estaba a punto de elaborar mi respuesta, pero vi que encontraste la solución tú mismo justo después de publicar esto ;-) –

Cuestiones relacionadas