WinForms: Wie kann ich in einer C # Listenansicht auf das letzte Element programmatisch angezeigt werden, wenn vertikale Scrollbalken sind?

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

Frage

Wie kann ich programmatisch auf das letzte Element in einer C # Listenansicht angezeigt werden, wenn es vertikale Scrollbalken? Ich habe jede Methode untersucht mit Listviews zugeordnet und kann nichts finden.

War es hilfreich?

Lösung

Es ist nicht wirklich einfach / möglich, die Listenansicht zu blättern. Sie müssen den Punkt sagen, um sicherzustellen, dass es ist sichtbar.

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

Andere Tipps

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

ListViewItem.EnsureVisible ()

WINFORMS:

Haben Sie versucht, den ausgewählten Wert auf TRUE in dem letzten Elemente in der Items-Auflistung der Listview-Einstellung?

Ich denke, dass dies zu tun auf dem letzten Punkt konzentrieren ... Scrollen nach unten, wenn es necesary ist. Aber ich did't mich tryed.

EDIT: Das wird den Trick tun:

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

WPF oder WinForms?

In WPF, erhalten Sie die ListViewItem und rufen BringIntoView auf sie.

Dies ist ein Link, um eine Windows-Funktion zur Verwendung der horizontalen und vertikalen Kraft zu verstecken jederzeit angezeigt werden:

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

Die folgenden Hack sowohl wählen und das letzte Listview-Element zeigen.
Nicht sicher, warum dies funktioniert, aber es funktioniert.

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

Auch wenn Sie nicht zeigen eine horizontale Bildlaufleiste wollen, müssen Sie Listview-Spalten, um die Größe der Listenansicht des ClientArea Breite passen vor BeginInvoke aufrufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top