class MyContextMenuStrip : ContextMenuStrip { private C1Editor _owner; private ToolStripMenuItem _btnCut, _btnCopy, _btnPaste; public MyContextMenuStrip(C1Editor editor) { // save reference to parent control _owner = editor; // create menu items _btnCut = (ToolStripMenuItem)Items.Add("Cut"); _btnCut.ShortcutKeys = Keys.Control | Keys.X; _btnCopy = (ToolStripMenuItem)Items.Add("Copy"); _btnCopy.ShortcutKeys = Keys.Control | Keys.C; _btnPaste = (ToolStripMenuItem)Items.Add("Paste"); _btnPaste.ShortcutKeys = Keys.Control | Keys.V; } protected override void OnItemClicked(ToolStripItemClickedEventArgs e) { Close(); if (e.ClickedItem == _btnCopy) _owner.Copy(); else if (e.ClickedItem == _btnCut) _owner.Cut(); else if (e.ClickedItem == _btnPaste) _owner.Paste(); base.OnItemClicked(e); } protected override void OnOpening(System.ComponentModel.CancelEventArgs e) { _btnCopy.Enabled = _owner.CanCopy; _btnCut.Enabled = _owner.CanCut; _btnPaste.Enabled = _owner.CanPaste || _owner.CanPasteAsText; base.OnOpening(e); }