protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); Point pt = new Point(e.X, e.Y); for (int i = 0; i < pages.Count; i++) { SelectorItem item = ((SelectorItem)pages[i]); if (item.BoundingRectangle.Contains(pt)) { hadhover = true; mouseloc = pt; DrawComplete(); Invalidate(SelectionRect, false); return; } } mouseloc = pt; if (hadhover) { DrawComplete(); Invalidate(SelectionRect, false); } hadhover = false; }
protected override void OnMouseDown(MouseEventArgs e) { base.OnMouseDown(e); if (e.Button == MouseButtons.Left) { Point pt = new Point(e.X, e.Y); for (int i = 0; i < pages.Count; i++) { SelectorItem item = ((SelectorItem)pages[i]); if (item.BoundingRectangle.Contains(pt)) { mousesel = pt; DrawComplete(); Invalidate(SelectionRect, false); return; } } } }
protected void DrawSelection(Graphics g, Rectangle ef3) { int minleft = ef3.Right; for (int i = 0; i < pages.Count; i++) { minleft -= ((SelectorItem)pages[i]).MinWidth; minleft -= ef3.Height; } selid = -1; for (int i = 0; i < pages.Count; i++) { SelectorItem item = ((SelectorItem)pages[i]); Rectangle rec = new Rectangle(minleft, ef3.Top, item.MinWidth + ef3.Height, ef3.Height); item.DrawButton(g, rec, i == pages.Count - 1, rec.Contains(mouseloc), rec.Contains(mousesel)); if (rec.Contains(mousesel)) { selid = i; } minleft += rec.Width; } }
internal void UpdateSelection(SelectorItem sender) { DrawComplete(); Invalidate(SelectionRect, false); }