如何以编程方式显示虚拟ListView中的底行

时间:2013-09-03 20:37:38

标签: c# .net winforms listview

我在Winforms中有一个虚拟的ListView,可以很好地显示数据库中的内容。将项目异步添加到数据库中,并在将滚动条拉到底部时可见。

现在我想确保每当异步线程添加到数据库时它也会更新ListView,以便它知道哪个索引应该是底行。在我添加ListView对象之前,我可以使用ListBox执行此操作,其中我根据itemheight和listbox height设置哪个索引应该是顶部索引:

int numItems = listBox1.ClientSize.Height / listBox1.ItemHeight;
if (listBox1.TopIndex == listBox1.Items.Count - numItems - 1)
    listBox1.TopIndex = listBox1.Items.Count - numItems + 1;

遗憾的是,ListView中不存在ItemHeight和TopIndex。

但主要问题是:如何告诉虚拟ListView它应该显示特定范围的索引 - 或者确保显示某些索引?

1 个答案:

答案 0 :(得分:3)

您可以使用属性TopItem设置ListView中的顶部可见项目(无论是否处于虚拟模式):

listView1.TopItem = listView1.Items[itemIndex];//itemIndex is the index of the item 
//you want to make visible as the top item.