如何滚动到ListBox的底部?

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

看着像ScrollIntoViewEnsureVisible这样的缺乏支持,我假设我将需要创build一个从ListBoxinheritance的自定义控件; 不过我不知道该从哪里做。

有些指针?

我相信你可以很容易地通过适当地设置TopIndex属性来做到这一点。

例如:

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

滚动到底部:

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

滚动到底部,然后select最后一个项目:

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

不需要在这里做复杂的计算,ListBox为您纠正不正确的input。