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

本文关键字:ListViewItem 异常 Bounds GetBounds 访问 | 更新日期: 2023-09-27 18:35:28

I get a Exception at 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;
    }

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

我发现这样做的原因是我在打电话

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

在我添加项目后,并致电

itemPanel1.Select();

然后我检查了我的所有项目并检查了边界,这导致了上面的异常。

所以我不明白,但已经找到了解决方法。