检查所选项目是否可见[详细信息视图中的虚拟ListView]

Sin*_*atr 0 c# listview virtualmode winforms

subj 有什么好的/简短的解决方案吗?

我能想到:

  • 获取TopItem索引(在VirtualMode创建项目之前是否可以为空?),如果所需项目的索引较小,则不可见,否则获取底部可见索引(顶部索引+ listView.ClientSize.Height / GetItemRect(TopItem).Height),如果所需项目的索引较多,则为无形的。否则可见。

  • 以某种方式检测滚动并做一些事情。

或者也许有更简单的方法?

Cem*_*tlu 5

listView1.Items[SelectedItemIndex].Bounds.IntersectsWith(listView1.ClientRectangle)
Run Code Online (Sandbox Code Playgroud)

这将解决您的问题。