C# 访问ListViewItem.Bounds或ListViewItem.GetBounds(..)会引发异常

C# 访问ListViewItem.Bounds或ListViewItem.GetBounds(..)会引发异常,c#,.net,listviewitem,C#,.net,Listviewitem,我在lvi.Bounds得到一个异常 但我不知道我能查到什么来阻止它。 似乎只有当我在Resize事件或sizeChanged上显示控件并调用此方法时,或者在创建所有内容之后,但在代码返回Windows之前,才会发生这种情况 private List<uint> GetIndexes(ListView vv) { List<uint> ret = new List<uint>(); foreach (ListViewIt

我在lvi.Bounds得到一个异常 但我不知道我能查到什么来阻止它。 似乎只有当我在Resize事件或sizeChanged上显示控件并调用此方法时,或者在创建所有内容之后,但在代码返回Windows之前,才会发生这种情况

private List<uint> GetIndexes(ListView vv)
    {
        List<uint> ret = new List<uint>();
        foreach (ListViewItem lvi in vv.Items)
        {
            uint uiKey = ((uint)lvi.Tag);
            if (!requestedImgs.Contains(uiKey) && lvi.Bounds.IntersectsWith(vv.ClientRectangle) && DctImages.Contains(uiKey))
            {
                ret.Add(uiKey);
            }
        }
        return ret;
    }
private List getindex(ListView vv)
{
List ret=新列表();
foreach(版本项中的ListViewItem lvi)
{
uint uiKey=((uint)lvi.Tag);
如果(!requestedImgs.Contains(uiKey)和&lvi.Bounds.IntersectsWith(vv.ClientRectangle)和&dctmages.Contains(uiKey))
{
ret.Add(uiKey);
}
}
返回ret;
}

我找到的原因是我打过电话

itemPanel1.Sorting = SortOrder.Ascending;
itemPanel1.Sort();
在我添加了项目之后

itemPanel1.Select();
在此之前,我检查了所有项目并检查了边界,这导致了上述异常

所以我不明白,但找到了解决办法