public override void OnMouseButtonAction(Point point, MouseButtonAction type) { Point subItemPoint; GridItemBase subItem = CurrentItem(point, out subItemPoint); if (subItem != null) { subItem.OnMouseButtonAction(subItemPoint, type); } else { base.OnMouseButtonAction(point, type); } }
internal void OnMouseButtonAction(Point point, MouseButtonAction type) { if (HasLeftExpander) { Image image = Expanded ? ExpandedImage : ShrunkenImage; Size s = new Size(image.Width * 3, image.Height * 3); Rectangle r = new Rectangle(new Point(), s); if (r.Contains(point)) { if (type == MouseButtonAction.MouseDown) { Expanded = !Expanded; GridView.Refresh(); } else { return; } } } if (point.Y < RowHeight) // user has clicked on the row { Point p; GridItemBase item = FindItemFromPoint(point, out p); if (item == null) { return; } item.OnMouseButtonAction(p, type); return; } else // user has clicked on a sub row of the row { Point p; GridRow row = FindRowFromPoint(point, out p); if (row == null) { return; } row.OnMouseButtonAction(p, type); } }