访问ListViewItem.Bounds或ListViewItem.GetBounds(..)会抛出异常

时间:2013-10-15 09:34:25

标签: c# .net listviewitem

我在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;
    }

1 个答案:

答案 0 :(得分:0)

我找到的原因是我打电话

itemPanel1.Sorting = SortOrder.Ascending;
itemPanel1.Sort();

我添加了项目并调用

itemPanel1.Select();

之前我经历了所有项目并检查了边界,这导致了上述异常。

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