using System; using System.Drawing; using System.Windows.Forms; using ICSharpCode.TextEditor.Utils; namespace ICSharpCode.TextEditor.UserControls { public partial class ContextMenuStripEx : ContextMenuStrip { public ToolStripMenuItem AddToolStripMenuItem(string text, Bitmap bitmap, EventHandler clickEvent, Keys keys, Func enabled) { var menuItem = new ToolStripMenuItem(text); if (bitmap != null) { menuItem.Image = bitmap; } if (keys != Keys.None) { menuItem.ShortcutKeys = keys; } if (clickEvent != null) { menuItem.Click += new WeakEventHandler(clickEvent).Handler; } Items.Add(menuItem); EventHandler toolstripOpening = (sender, args) => { menuItem.Enabled = enabled(); }; Opening += new WeakEventHandler(toolstripOpening).Handler; return menuItem; } public ToolStripSeparator AddToolStripSeparator() { var strip = new ToolStripSeparator(); Items.Add(strip); return strip; } } }