class MyContextMenuStrip : ContextMenuStrip { private C1Editor _owner; private ToolStripMenuItem _btnUndo, _btnRedo; public MyContextMenuStrip(C1Editor editor) { // save reference to parent control _owner = editor; // create menu items _btnUndo = (ToolStripMenuItem)Items.Add("Undo"); _btnUndo.ShortcutKeys = Keys.Control | Keys.Z; _btnRedo = (ToolStripMenuItem)Items.Add("Redo"); _btnRedo.ShortcutKeys = Keys.Control | Keys.Y; } protected override void OnItemClicked(ToolStripItemClickedEventArgs e) { Close(); if (e.ClickedItem == _btnUndo) _owner.Undo(); else if (e.ClickedItem == _btnRedo) _owner.Redo(); base.OnItemClicked(e); } protected override void OnOpening(System.ComponentModel.CancelEventArgs e) { _btnUndo.Enabled = _owner.CanUndo; _btnRedo.Enabled = _owner.CanCut; base.OnOpening(e); }