public void RemoveItem(SystemMenuItem item) { if (Items.Contains(item)) { Items.Remove(item); DeleteMenu(MenuHandle, item.ID, 0x0000); } }
public static int CopyToolStripToMenu(ToolStrip menuStrip, SystemMenu systemMenu, int currentId = 0) { foreach (ToolStripItem item in menuStrip.Items) { if (item is ToolStripMenuItem menuItem) { SystemMenuItemFlags flags = SystemMenuItemFlags.Default; if (menuItem.Checked) { flags |= SystemMenuItemFlags.Checked; } if (!menuItem.Enabled) { flags |= SystemMenuItemFlags.Disabled; } if (menuItem.HasDropDownItems) { flags |= SystemMenuItemFlags.Popup; } SystemMenuItem systemMenuItem; if (menuItem.Image != null) { flags |= SystemMenuItemFlags.Bitmap; systemMenuItem = new SystemMenuItem(menuItem.Text, menuItem.PerformClick, flags, menuItem.Image); } else { systemMenuItem = new SystemMenuItem(menuItem.Text, menuItem.PerformClick, flags); } systemMenuItem.ID = currentId; if (menuItem.HasDropDownItems) { SystemMenu subMenu = new SystemMenu(true); currentId = CopyToolStripToMenu(menuItem.DropDown, subMenu, currentId); systemMenuItem.SubMenu = subMenu; systemMenuItem.ID = subMenu.MenuHandle.ToInt32(); } else { currentId++; } systemMenu.AddItem(systemMenuItem); } else if (item is ToolStripSeparator seperator) { systemMenu.AddItem(new SystemMenuItem("", new Action(() => { }), SystemMenuItemFlags.IsSeperator)); } } return(currentId); }
public void AddItem(SystemMenuItem item) { Items.Add(item); if (item.MenuItemFlags.HasFlag(SystemMenuItemFlags.Bitmap)) { AppendMenu(MenuHandle, item.MenuItemFlags, item.ID, item.Image.GetHbitmap()); } else { AppendMenu(MenuHandle, item.MenuItemFlags, item.ID, item.Text); } }
public void PerformAction(int itemId) { IEnumerable <SystemMenu> subMenus = Items.Where(a => a.MenuItemFlags.HasFlag(SystemMenuItemFlags.Popup)).Select(a => a.SubMenu); foreach (SystemMenu subMenu in subMenus) { subMenu.PerformAction(itemId); } IEnumerable <SystemMenuItem> items = Items.Where(a => a.ID == itemId); if (items.Count() > 0) { SystemMenuItem item = items.First(); item.OnClick(); } }