2012-01-09 5 views
1

Comment puis-je obtenir les éléments visibles à partir d'une liste de visualisation winforms? Il ne semble pas être un moyen simple, et je suis réticent à interroger des articles par control.clientrectangle ou autres hacks similaires à ce qui suit:Éléments de listview visibles dans la liste des winforms?

https://stackoverflow.com/questions/372011/how-do-i-get-the-start-index-and-number-of-visible-items-in-a-listview)

Quand je dis que je veux dire visible les éléments sont visibles sur l'écran.

+0

ListView.GetItemAt() est la méthode appropriée pour cela. –

Répondre

1

Vous pouvez itérer de ListView.TopItem et vérifier ListViewItem.Bounds propriété de chaque élément si elle se trouve dans la zone client.

Better ListView Express est un composant logiciel gratuit qui ont également BottomItem propriété, de sorte que vous pouvez facilement passer à travers les éléments visibles avec une boucle pour (si les deux TopItem et BottomItem ne sont pas nulle):

for (int i = betterListView.TopItem.Index; i < betterListView.BottomItem.Index; i++) 
{ 
    // your code here 
} 

Vous pouvez essayer ceci - il a la même interface que ListView et a de nombreuses améliorations par rapport à .NET ListView.

-3

Si vous recherchez une fonction qui vous donne uniquement la liste des éléments visibles, cela n'existe pas. Vous pouvez aller pour chaque article et vérifier si c'est visible ou non. (Si je comprends bien votre question non? S'il vous plaît donner beaucoup d'explications claires)

+0

Les moyens visibles = articles visibles sur l'écran merci – Tom

+0

Comment est-ce une réponse valide? Il ne semble pas être une propriété "Visible" sur ListViewItem. – gonzobrains

Questions connexes