Winforms: Comment puis-je afficher par programme le dernier élément d'une listview C # lorsqu'il existe des barres de défilement verticales?

StackOverflow https://stackoverflow.com/questions/616491

Question

Comment puis-je afficher par programme le dernier élément dans une listview C # lorsqu'il existe des barres de défilement verticales? J'ai étudié toutes les méthodes associées aux listviews et je ne trouve rien.

Était-ce utile?

La solution

Ce n’est pas vraiment facile / possible de faire défiler la liste. Vous devez indiquer l'élément pour vous assurer qu'il est visible.

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

Autres conseils

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

ListViewItem.EnsureVisible ()

WINFORMS:

Avez-vous essayé de définir la valeur Selected sur TRUE dans le dernier élément de la collection Items de ListView?

Je pense que cela va se concentrer sur le dernier élément ... défiler vers le bas si cela est nécessaire. Mais je ne me suis pas essayé.

EDIT: Cela fera l'affaire:

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

WPF ou WinForms?

Dans WPF, vous obtenez le ListViewItem et appelez BringIntoView dessus.

Il s'agit d'un lien permettant d'utiliser une fonction Windows pour masquer l'horizontale et forcer la verticale à s'afficher à tout moment:

http: //social.msdn.microsoft.com/Forums/en-US/winforms/thread/4aa4dade-53a2-4e2e-a8b4-b4980da1f39c/

Le hack suivant va à la fois sélectionner et afficher le dernier élément de ListView.
Vous ne savez pas pourquoi cela fonctionne, mais cela fonctionne.

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

De même, si vous ne souhaitez pas afficher de barre de défilement horizontale, vous devez redimensionner les colonnes ListView afin de les adapter à la largeur ClientArea du ListView avant d'appeler BeginInvoke .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top