2009-03-05 6 views

Respuesta

11

En realidad no es fácil/posible desplazar la vista de lista. Debe contar el artículo para asegurarse de que esté visible.

var items = listView.Items; 
var last = items[items.Count-1]; 
last.EnsureVisible(); 
+0

Este código funciona, pero una barra horizontal aparece y lo oculta en mi dispositivo CE (debido al tamaño limitado). ¿Hay alguna forma de deslizar la barra de desplazamiento horizontal? – Auburnate

+0

Debe tener en cuenta el ancho de la barra de desplazamiento vertical. Tus columnas no deberían usar todo el ancho de tu ListView ... guarda un poco para la barra de desplazamiento vertical. – Romias

0

WPF o WinForms?

En WPF, obtiene el ListViewItem y llama al BringIntoView en él.

1

WinForms:

¿Usted intentó establecer el valor seleccionado en TRUE en el último elemento de la colección de artículos de la ListView?

creo que al hacer esto se centrará en el último elemento de desplazamiento hacia abajo ... si es NECESARIO. Pero no lo hice yo mismo.

EDIT: Esto va a hacer el truco:

Me.ListView1.Items(Me.ListView1.Items.Count - 1).EnsureVisible() 
+0

Estableció el foco pero no se desplazó automáticamente. ¿Alguna otra idea? – Auburnate

1

ListViewItem.EnsureVisible()

6
this.listView1.Items[this.listView1.Items.Count - 1].EnsureVisible(); 
0

este truco a los dos para seleccionar y espectáculo el último elemento de la lista No estoy seguro de por qué funciona pero funciona.

listview.SelectedIndices.Clear();
listview.FocusedItem = listview.Items [listview.Items.Count - 1];
listview.FocusedItem.Selected = true;
listview.BeginInvoke ((MethodInvoker) delegado {listview.FocusedItem.EnsureVisible();});

Además, si no desea que la barra de desplazamiento horizontal para mostrar, es necesario cambiar el tamaño de las columnas de vista de lista para adaptarse a la anchura ClientArea de la vista de lista antes de llamar BeginInvoke.

Cuestiones relacionadas