2012-01-09 129 views
1

如何从winforms listview中获取可见项?似乎没有成为一个简单的方法,我不愿意通过查询或control.clientrectangle其他黑客的项目类似以下内容:在winforms listview中可见的列表视图项?

https://stackoverflow.com/questions/372011/how-do-i-get-the-start-index-and-number-of-visible-items-in-a-listview)

当我说看到我指的是项目上可见屏幕。

+0

ListView.GetItemAt()是这样做的正确方法。 – 2012-01-09 16:35:15

回答

1

您可以从ListView.TopItem迭代,并检查ListViewItem.Bounds每个项目是否位于客户端区域内的财产。

Better ListView Express是有也BottomItem物业的免费组件,让您可以轻松地去通过可见的项目有循环(如果两个TopItem和BottomItem不):

for (int i = betterListView.TopItem.Index; i < betterListView.BottomItem.Index; i++) 
{ 
    // your code here 
} 

你可以试试这个 - 它和ListView有相同的接口,并且对.NET ListView有很多改进。

-3

如果您正在寻找一个只给出可见项目列表的函数,那么就没有这样的事情。你可以去foreach item并检查它是否可见。 (如果我理解你的问题吗?请给多少明确的解释)

+0

可见的手段=在屏幕上可见的项目谢谢 – Tom 2012-01-09 15:09:32

+0

这是一个有效的答案? ListViewItem上似乎没有“Visible”属性。 – gonzobrains 2012-12-14 23:04:46