public SystemMenuItem(string text, Action onClick, SystemMenuItemFlags flags, Image image) { if (!flags.HasFlag(SystemMenuItemFlags.Bitmap)) { flags = flags | SystemMenuItemFlags.Bitmap; } Text = text; OnClick = onClick; MenuItemFlags = flags; Image = new Bitmap(image); }
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); }
static extern bool AppendMenu(IntPtr hMenu, SystemMenuItemFlags uFlags, int uIDNewItem, IntPtr lpNewItem);
public SystemMenuItem(string text, Action onClick, SystemMenuItemFlags flags) { Text = text; OnClick = onClick; MenuItemFlags = flags; }