public override void OnMouseMove(Point point) { Point subItemPoint; GridItemBase subItem = CurrentItem(point, out subItemPoint); if (mouseTrackedItem != subItem) { if (mouseTrackedItem != null) { mouseTrackedItem.OnLeave(); } mouseTrackedItem = subItem; if (subItem != null) { subItem.OnEnter(subItemPoint); } } if (mouseTrackedItem != null) { mouseTrackedItem.OnMouseMove(subItemPoint); } }
internal void OnMouseMove(Point point) { if (HasLeftExpander) { Image image = Expanded ? ExpandedImage : ShrunkenImage; Rectangle r = new Rectangle(image.Width, image.Height, image.Width, image.Height); Cursor = r.Contains(point) ? Cursors.Hand : Cursors.Default; } // Make sure only one is valid System.Diagnostics.Trace.Assert(LastItem == null || LastSubRow == null); Point p; if (point.Y > RowHeight) { if (LastItem != null) { LastItem.OnLeave(); LastItem = null; } GridRow row = FindRowFromPoint(point, out p); if (row != null && LastSubRow == row) { LastSubRow.OnMouseMove(p); return; } if (LastSubRow != null) { LastSubRow.OnLeave(); } LastSubRow = row; if (LastSubRow != null) { LastSubRow.OnEnter(p); } } else { if (LastSubRow != null) { LastSubRow.OnLeave(); LastSubRow = null; } GridItemBase item = FindItemFromPoint(point, out p); if (item != null && LastItem == item) { LastItem.OnMouseMove(p); return; } if (LastItem != null) { LastItem.OnLeave(); } LastItem = item; if (LastItem != null) { LastItem.OnEnter(p); } } }