刷新列表视图,以便显示selectedindex?

时间:2011-11-10 16:24:59

标签: c# winforms listview scroll

我有一个winforms listview,其中有200个项目显示在详细列表视图中 屏幕上一次显示50个项目。我想点击一个按钮,让listview显示所选的索引# - 例如#113。

我遇到的问题是我可以选择索引113但列表视图不会在滚动范围的顶部显示113.

如何让listview转移到selectindex?

UPDATE1:

答案是使用EnsureVisible:

populateListView();
this.listView1.Items[113].Selected = true;
this.listView1.Items[113].EnsureVisible();   

3 个答案:

答案 0 :(得分:16)

您是否尝试使用yourList.SelectedItem.EnsureVisible

使用list.TopItem = list.Item[x]将该项目滚动到顶部(或尝试)

http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.ensurevisible%28VS.90%29.aspx

答案 1 :(得分:4)

确保可见将确保您定义的项目在窗口中可见,但不一定是ListView中的顶级项目。

要确保所选项目是最高项目,请使用listView1.TopItem属性

listView1.Items[113].Selected = true;
listView1.TopItem = listView1.SelectedItems[0];

答案 2 :(得分:1)

为结果添加以下代码:

list.SelectedIndex = i;
list.ScrollIntoView(list.Items[i]);