C# 如何在listview中使用EnsureRevible方法?

C# 如何在listview中使用EnsureRevible方法?,c#,.net,listview,C#,.net,Listview,我有一个列表视图包含100个项目,我们可以根据所选项目执行某些活动。我使用了enseRevisible()方法来调整可见性,并且我的ListView会不时刷新以更新数据 现在我面临的问题是,如果我选择列表中的第一项,我就会开始向下翻页(可能选择第21、59项) 在这次选择中,我可以突出显示第1、第24和第75条 第56次,在本例中,当控件突然刷新页面时,只有第一个选定项保留焦点,我丢失了其他选择项,必须单独或更快地再次执行 因此,我的问题是如何选择多个项目并执行操作,而ListView在特定时间

我有一个
列表视图
包含100个项目,我们可以根据所选项目执行某些活动。我使用了
enseRevisible()
方法来调整可见性,并且我的
ListView
会不时刷新以更新数据

现在我面临的问题是,如果我选择列表中的第一项,我就会开始向下翻页(可能选择第21、59项) 在这次选择中,我可以突出显示第1、第24和第75条 第56次,在本例中,当控件突然刷新页面时,只有第一个选定项保留焦点,我丢失了其他选择项,必须单独或更快地再次执行

因此,我的问题是如何选择多个项目并执行操作,而
ListView
在特定时间间隔内刷新以填充数据,尽管使用了
ensurerevisible()

这是我的现有代码:

 if (_listviewFirst.SelectedItems.Count > 0)
        {
            _listviewFirst.SelectedItems[_listviewFirst.SelectedItems.Count - 1].EnsureVisible();
            _listviewFirst.SelectedItems[0].EnsureVisible();
        }

我将使用
ListView.ItemSelectionChanged
()事件,从所选项目的
列表中添加/删除项目(或其引用)。刷新控件后,您应该迭代选定的项,并将这些项更新为
列表视图中的选定项

您将能够利用事件处理程序中的
e.IsSelected
e.Item
e.ItemIndex
来执行此操作


我根本不会使用
ensureavible

也许您应该在每个选定项目之后的某个位置保存一个项目键值列表。然后刷新后重新选择该选项list@Boomer我可以使用ListView.TopItem属性吗?在这些场景中,我不知道它是否可以工作,如果可以,我如何使用?为什么控件突然刷新?你可以试着用复选框代替吗@Tony Day表示,它正在动态填充数据