/// <summary> /// Right-click handler /// </summary> /// <param name="e"></param> private void OnContextMenu(MouseEventArgs e) { // Change current selection if necessary var point = new Point(e.X, e.Y); int n = GraphicsList.Count; DrawObject o = null; for (int i = 0; i < n; i++) { if (GraphicsList[i].HitTest(point) == 0) { o = GraphicsList[i]; break; } } if (o != null) { if (!o.Selected) { GraphicsList.UnselectAll(); } // Select clicked object o.Selected = true; _bringToFrontToolStripMenuItem.Enabled = true; _sendToBackToolStripMenuItem.Enabled = true; _cutToolStripMenuItem.Enabled = true; _copyToolStripMenuItem.Enabled = true; _deleteToolStripMenuItem.Enabled = true; } else { _bringToFrontToolStripMenuItem.Enabled = false; _sendToBackToolStripMenuItem.Enabled = false; _cutToolStripMenuItem.Enabled = false; _copyToolStripMenuItem.Enabled = false; _deleteToolStripMenuItem.Enabled = false; GraphicsList.UnselectAll(); } _pasteToolStripMenuItem.Enabled = GraphicsList.AreItemsInMemory(); _contextMenuStrip.Show(MousePosition); Refresh(); }