private void EnableMenuItems() { foreach (ToolStripMenuItem menuItem in initiallyInvisible) { menuItem.Available = false; } foreach (ToolStripMenuItem menuItem in menuStrip.Items) { DisableAndResetMenuItemsRecursive(menuItem); } if (activeHandler != null) { activeHandler.EnableMenuItems(this); } if (globalHandler != null) { globalHandler.EnableMenuItems(this); } foreach (ToolStripMenuItem menuItem in menuStrip.Items) { menuItem.Enabled = true; // always enable top-level menus - less confusing ux PropagateEnableMenuItemsRecursive(menuItem); HideRedundantSeparatorsRecursive(menuItem); } }