using System; using System.Drawing; using System.Windows.Forms; class BetterContextMenu: Form { MenuItemColor micColor; public static void Main() { Application.Run(new BetterContextMenu()); } public BetterContextMenu() { Text = "Better Context Menu Demo"; EventHandler eh = new EventHandler(MenuColorOnClick); MenuItemColor[] amic = { new MenuItemColor(Color.Black, "&Black", eh), new MenuItemColor(Color.Blue, "B&lue", eh), new MenuItemColor(Color.Green, "&Green", eh), new MenuItemColor(Color.Cyan, "&Cyan", eh), new MenuItemColor(Color.Red, "&Red", eh), new MenuItemColor(Color.Magenta, "&Magenta", eh), new MenuItemColor(Color.Yellow, "&Yellow", eh), new MenuItemColor(Color.White, "&White", eh) }; foreach (MenuItemColor mic in amic) mic.RadioCheck = true; micColor = amic[3]; micColor.Checked = true; BackColor = micColor.Color; ContextMenu = new ContextMenu(amic); } void MenuColorOnClick(object obj, EventArgs ea) { micColor.Checked = false; micColor = (MenuItemColor) obj; micColor.Checked = true; BackColor = micColor.Color; } } class MenuItemColor: MenuItem { Color clr; public MenuItemColor(Color clr, string str, EventHandler eh): base(str, eh) { Color = clr; } public Color Color { get { return clr; } set { clr = value; } } }