Come posso visualizzare a livello di codice l'ultimo elemento in una listview C# quando ci sono barre di scorrimento verticali? Ho studiato tutti i metodi associati a listview e non riesco a trovare nulla.Winform: come posso visualizzare l'ultimo elemento in una listview C# a livello di codice quando ci sono barre di scorrimento verticali?
risposta
In realtà non è facile/possibile scorrere la visualizzazione elenco. Devi dire l'oggetto per assicurarti che sia visibile.
var items = listView.Items;
var last = items[items.Count-1];
last.EnsureVisible();
WPF o WinForms?
In WPF, si ottiene il ListViewItem
e si chiama BringIntoView
su di esso.
WinForms:
Forse si tenta di impostare il valore selezionato su TRUE nel l'ultimo elemento della collezione Items del ListView?
Penso che fare questo si concentrerà sull'ultimo elemento ... scorrendo verso il basso se necessario. Ma non ci ho provato.
EDIT: Questo farà il trucco:
Me.ListView1.Items(Me.ListView1.Items.Count - 1).EnsureVisible()
Impostava lo stato attivo ma non lo scorrimento automatico. Altre idee? – Auburnate
ListViewItem.EnsureVisible()
this.listView1.Items[this.listView1.Items.Count - 1].EnsureVisible();
Questo è un collegamento a utilizzando funzione A finestre per nascondere l'orizzontale e la forza verticale per essere mostrato in ogni momento:
http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/4aa4dade-53a2-4e2e-a8b4-b4980da1f39c/
Il seguente hack sia selezionare e mostra l'ultimo oggetto listview. Non sono sicuro del motivo per cui funziona, 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 la barra di scorrimento orizzontale, è necessario ridimensionare le colonne listview per adattarle alla larghezza ClientArea della listview prima di chiamare BeginInvoke.
Questo codice funziona, ma una barra orizzontale appare e la nasconde sul mio dispositivo CE (a causa delle dimensioni limitate). Qualsiasi modo per barra di scorrimento orizzontale diable? – Auburnate
È necessario tenere conto della larghezza della barra di scorrimento verticale. Le tue colonne non dovrebbero utilizzare tutta la larghezza del tuo ListView ... salva un po 'la barra di scorrimento verticale. – Romias