0

你能告诉我如何在滚动期间获取列表视图中第一个可见项目的索引。假设我在列表视图中有 100 个项目,并且窗口中只有 5 个项目可见,因为它太小了,然后我开始滚动项目并能够看到列表视图中当前可见的这 5 个项目中的第一个(或任何一个)的索引.

谢谢。

4

3 回答 3

0

有一个TopItem属性返回控件中的第一个可见项。

于 2012-03-07T16:40:53.843 回答
0

您可以只查看模式到列表或详细信息。从这一点开始,您可以获取顶部项目,然后将其更改回您之前的查看模式,例如 LargeIcon:

listview1.View = View.List;
ListViewItem topitem = listview1.TopItem;
listview1.View = View.LargeIcon;
于 2012-07-03T03:15:23.413 回答
-1
    public int firstVisible(ListView lv)
    {
        int i = 1;
        try
        {
            while (lv.GetItemRect(i).X != 0) i++;
        }
        catch
        {
            return 0;
        }
        int rowWidth = i;
        int rowHeight = lv.GetItemRect(i).Y - lv.GetItemRect(0).Y;
        return -((int)lv.GetItemRect(0).Y / rowHeight) * rowWidth;
    }

这将返回列表视图的第一个可见索引。我不知道是否有任何可能破坏它的东西,它适用于我正在做的事情。我只用 LargeIcons 测试过它。它的好处是它不必遍历每个项目,它只是从第一个项目的位置计算出来。

于 2014-05-31T00:22:22.667 回答