public void GetMouseCheckOrder(EPointF a_pntLocalLoc, ArrayList sprites) { a_pntLocalLoc = this.ConvParentLocToSrcLoc(a_pntLocalLoc); for (int i = this._slChildrenLocZSorted.Count - 1; i >= 0; i--) { Sprite sp = (Sprite)this._slChildrenLocZSorted.GetByIndex(i); //foreach (DataRowView row in m_dvChildrenLocZInverseSorted) //{ // Sprite sp = ((Sprite)m_plChildrenByHash[(int)row["Hash"]]); if (sp.ChildCount > 0) { sp.GetMouseCheckOrder(a_pntLocalLoc, sprites); } if (sp.MouseActive) { if (sp.Rect.Contains(a_pntLocalLoc)) { sprites.Add(sp); } } } }