你能告诉我如何在滚动过程中获得listview中第一个可见项的索引。假设我在listview中有100个项目,并且在窗口中只有5个项目可见,因为它太小了,然后我开始滚动项目并且能够看到列表视图中可见的那5个项目的第一个(或任何)的索引
感谢。
答案 0 :(得分:0)
有TopItem
属性可返回控件中的第一个可见项。
答案 1 :(得分:0)
您可以只查看模式列表或详细信息。从这一点开始,您可以获得顶部项目,然后将其更改回之前的查看模式,例如LargeIcon:
listview1.View = View.List;
ListViewItem topitem = listview1.TopItem;
listview1.View = View.LargeIcon;
答案 2 :(得分:-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;
}
这将返回listview的第一个可见索引。我不知道是否有任何可能破坏它的东西,它适用于我正在做的事情。我只用LargeIcons测试过它。关于它的好处是它不必遍历每个项目,它只是从第一个项目的位置找出它。