/// <summary> /// Removes all elements (including menu items added by default) from the menu. /// </summary> public void ClearMenu() { for (int i = Items.Count - 1; i >= 0; i--) { SysMenuAPI.RemoveMenu(Menu, Items[i].ID, SysMenuAPI.Flags.MF_BYCOMMAND); Items.RemoveAt(i); } }
/// <summary> /// Remove an item from the system menu. /// </summary> /// <param name="index">The index of the item which should be removed.</param> public void RemoveItem(int index) { SysMenuAPI.RemoveMenu(Menu, Items[index].ID, SysMenuAPI.Flags.MF_BYCOMMAND); if (Items[index].HasSubItems()) { Items[index].ClearSubMenu(); } Items.RemoveAt(index); }
/// <summary> /// Remove an item from the sub menu. /// </summary> /// <param name="index">The index of the item which should be removed.</param> public void RemoveSubItem(int index) { SystemMenuItem itm = SubItems[index]; SysMenuAPI.RemoveMenu(itm.HMenu, itm.ID, SysMenuAPI.Flags.MF_BYCOMMAND); if (itm.HasSubItems()) { itm.ClearSubMenu(); } SubItems.RemoveAt(index); if (SubItems.Count == 0) { SubMenu = IntPtr.Zero; } }
/// <summary> /// Removes all sub items. /// </summary> public void ClearSubMenu() { for (int i = SubItems.Count - 1; i >= 0; i--) { if (SubItems[i].HasSubItems()) { SubItems[i].ClearSubMenu(); } SysMenuAPI.RemoveMenu(SubItems[i].HMenu, SubItems[i].ID, SysMenuAPI.Flags.MF_BYCOMMAND); SubItems.RemoveAt(i); } if (SubItems.Count == 0) { SubMenu = IntPtr.Zero; } }