2013-10-15 36 views
0

我得到一个异常在lvi.Bounds 但我不知道我可以检查,以阻止它。 它似乎只发生在我显示控件并在Resize事件或sizeChanged上调用此方法时,或者在我创建了所有内容之后,但在我的代码返回到Windows之前。访问ListViewItem.Bounds或ListViewItem.GetBounds(..)抛出异常

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

回答

0

我之所以发现这是我打电话

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

我已经添加的项目后,并呼吁

itemPanel1.Select(); 

之前,我再通过我的所有项目去并检查了导致上述异常的界限。

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