Winforms: come posso visualizzare a livello di programmazione l'ultimo elemento in una visualizzazione elenco C # quando sono presenti barre di scorrimento verticali?

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

Domanda

Come posso visualizzare a livello di codice l'ultimo elemento in una visualizzazione elenco C # quando ci sono barre di scorrimento verticali? Ho studiato tutti i metodi associati alle visualizzazioni di elenco e non riesco a trovare nulla.

È stato utile?

Soluzione

In realtà non è facile / possibile scorrere la vista elenco. Devi dire all'articolo per assicurarti che sia visibile.

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

Altri suggerimenti

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

ListViewItem.EnsureVisible ()

WinForms:

Hai provato a impostare il valore Selezionato su TRUE nell'ultimo elemento nella raccolta Articoli di ListView?

Penso che ciò si concentrerà sull'ultimo elemento ... scorrendo verso il basso se è necessario. Ma non ci ho provato.

EDIT: Questo funzionerà:

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

WPF o WinForms?

In WPF, si ottiene ListViewItem e si chiama BringIntoView su di esso.

Questo è un collegamento all'utilizzo di una funzione di Windows per nascondere l'orizzontale e forzare la visualizzazione verticale in qualsiasi momento:

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

L'hack seguente selezionerà e mostrerà l'ultimo elemento ListView.
Non sono sicuro del perché funzioni, ma funziona.

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

Inoltre, se non si desidera visualizzare una barra di scorrimento orizzontale, è necessario ridimensionare le colonne di ListView per adattarle alla larghezza ClientArea di ListView prima di chiamare BeginInvoke .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top