如何滚动到ListBox的底部?
我正在使用Winforms ListBox作为一个小的事件列表,并希望填充它,以便最后一个事件(底部)是可见的。 SelectionMode
设置为none。 用户可以滚动列表,但我宁愿它开始滚动到最后。
看着像ScrollIntoView
, EnsureVisible
这样的缺乏支持,我假设我将需要创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。