68 votes

Comment faire défiler vers le bas de ListBox?

J'utilise un Winforms ListBox comme une petite liste d'événements et je souhaite le renseigner de sorte que le dernier événement (en bas) soit visible. Le SelectionMode est défini sur aucun. L'utilisateur peut faire défiler la liste mais je préférerais qu'il commence par défiler jusqu'à la fin.

En regardant le manque de support pour des choses comme ScrollIntoView , EnsureVisible , je suppose que je devrai créer un contrôle personnalisé qui hérite de ListBox; Cependant, je ne sais pas quoi faire à partir de là.

Quelques pointeurs?

94voto

Jon Points 194296

Je pense que vous pouvez le faire facilement en définissant correctement la propriété TopIndex .

Par exemple:

 int visibleItems = listBox.ClientSize.Height / listBox.ItemHeight;
listBox.TopIndex = Math.Max(listBox.Items.Count - visibleItems + 1, 0);
 

-3voto

Wobbles Points 488

Lorsque la réponse sélectionnée fonctionne, la méthode typique consiste à utiliser ScrollIntoView.

 listBox.ScrollIntoView(listBox.Items[listBox.Items.Count-1]);
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X