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 menu (not automatic)
Close();
if (e.ClickedItem == _btnCopy)
_owner.Copy();
else if (e.ClickedItem == _btnCut)
_owner.Cut();
else if (e.ClickedItem == _btnPaste)
_owner.Paste();
// on to base class
base.OnItemClicked(e);
}
protected override void OnOpening(System.ComponentModel.CancelEventArgs e)
{
if (_owner.Mode == EditorMode.Preview)
{
e.Cancel = true;
}
else if (_owner.Mode == EditorMode.Source)
{
_btnCopy.Enabled = _owner.CanCopy;
_btnCut.Enabled = _owner.CanCut;
_btnPaste.Enabled = _owner.CanPaste || _owner.CanPasteAsText;
// on to base class
base.OnOpening(e);
}
}