如何滚动到ListBox的底部?

JYe*_*ton 58 c# listbox winforms

我使用Winforms ListBox作为一个小事件列表,并希望填充它以便最后一个事件(底部)可见.该SelectionMode设置为none.用户可以滚动列表,但我希望它开始滚动到最后.

看着缺少的东西像支持ScrollIntoView,EnsureVisible,我假设我将需要创建一个从Control继承的自定义控制; 但是我不知道该怎么做.

一些指针?

Jon*_*Jon 86

我相信你可以通过TopIndex恰当地设置属性来轻松实现.

例如:

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

  • 如果你只是将`TopIndex`设置为最后一个项而不是担心哪个应该位于顶部,似乎工作正常,例如`listBox.TopIndex = listBox.Items.Count - 1;` (34认同)

use*_*613 52

滚动到底部:

listbox.TopIndex = listbox.Items.Count - 1;

滚动到底部,然后选择最后一项:

listbox.SelectedIndex = listbox.Items.Count - 1;

  • 我更喜欢这种解决方案,更简单.谢谢! (2认同)