public int ViewPointToItemIndex(Point viewPt) { if (!ViewRectangle.Contains(viewPt)) { return(-1); } Size itemSize = ItemSize; int index = viewPt.X / itemSize.Width; return(index); }
protected override void OnMouseDown(MouseEventArgs e) { base.OnMouseDown(e); MouseDownButton = e.Button; if (e.Button == MouseButtons.Left) { TempViewRectangle = ViewRectangle; Capture = true; MouseDownPoint = new Point(e.X, e.Y); if (!ViewRectangle.Contains(e.X, e.Y)) { int x = Math.Min(FullRectangle.X + FullRectangle.Width - ViewRectangle.Width, Math.Max(FullRectangle.X, (e.X - ViewRectangle.Width / 2))); int y = Math.Min(FullRectangle.Y + FullRectangle.Height - ViewRectangle.Height, Math.Max(FullRectangle.Y, (e.Y - ViewRectangle.Height / 2))); SetViewRectangle(new Rectangle(x, y, ViewRectangle.Width, ViewRectangle.Height)); } MouseDownViewRectangle = ViewRectangle; } }