2012-01-09 128 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