/// <summary> /// Create a menu item and a trailing separator. The separator is only created /// as a flag on the menu item, the actual separator is created once all the menu /// items have been loaded. A separator should be included after each group of /// related menu items. If a separator is inserted at the last position in a menu /// it will automatically be deleted if no menu items follow. /// </summary> /// <param name="itemName">The menu item name.</param> /// <param name="itemText">The menu item text.</param> /// <param name="itemImage">The menu item image.</param> /// <param name="keys">The menu item's shortcut keys.</param> /// <param name="keyText">A text representation of the menu item shortcut /// keys if the keys are defined elsewhere.</param> /// <param name="onClick">The menu item's click event handler.</param> /// <param name="includeSeparator">If true insert a separator after the menu item.</param> /// <returns>The menu item.</returns> public static ToolStripMenuItem CreateMenuItem( string itemName, string itemText, Image itemImage, Keys keys, string keyText, EventHandler onClick, bool includeSeparator) { ToolStripItemTag itemTag = new ToolStripItemTag(); itemTag.IncludeSeparator = includeSeparator; ToolStripMenuItem item = new ToolStripMenuItem(); item.Name = itemName; item.Text = itemText; item.Tag = itemTag; item.ShortcutKeys = keys; if (keyText != null) { item.ShortcutKeyDisplayString = keyText; } if (itemImage != null) { item.ImageTransparentColor = System.Drawing.Color.Fuchsia; item.Image = itemImage; } if (onClick != null) { item.Click += new EventHandler(onClick); } return(item); }
private void UpdateToolbarItems() { foreach (DockedToolStrip toolStrip in _dockedToolStrips.Values) { /* * Go through each button in the toolbars and add a * separator after every item with the 'IncludeSeparator' * flag set. */ for (int i = 0; i < toolStrip.ToolStrip.Items.Count; i++) { ToolStripItem item = toolStrip.ToolStrip.Items[i]; ToolStripItemTag tag = item.Tag as ToolStripItemTag; if (tag != null && tag.IncludeSeparator) { ToolStripSeparator sep = MenuTools.CreateSeparator(item.Name + "_SEP"); /* * Toolbar separator occurs before the button. */ int j = toolStrip.ToolStrip.Items.IndexOf(item); if (j != -1) { toolStrip.ToolStrip.Items.Insert(j, sep); i++; // increment i to skip button } } } } }
/// <summary> /// Create a toolbar button with a leading separator. The separator is only created /// as a flag on the button, the actual separator is inserted after the entire /// toolbar has been assembled. The first item in a group of buttons should /// include a separator. /// </summary> /// <param name="itemName">The name of the button.</param> /// <param name="itemText">The tooltip text for the button.</param> /// <param name="itemImage">The button's image.</param> /// <param name="onClick">The button's click event handler.</param> /// <param name="includeSeparator">If true insert a separator before the button.</param> /// <returns>The button.</returns> public static ToolStripButton CreateToolbarButton( string itemName, string itemText, Image itemImage, EventHandler onClick, bool includeSeparator) { ToolStripItemTag itemTag = new ToolStripItemTag(); itemTag.IncludeSeparator = includeSeparator; ToolStripButton button = new ToolStripButton(); button.Name = itemName; button.Tag = itemTag; button.ToolTipText = itemText; button.DisplayStyle = ToolStripItemDisplayStyle.Image; if (itemImage != null) { button.ImageTransparentColor = Color.Fuchsia; button.Image = itemImage; } if (onClick != null) { button.Click += new EventHandler(onClick); } return(button); }
private void UpdateMenuDropDownItems(ToolStripMenuItem menu) { for (int i = 0; i < menu.DropDownItems.Count; i++) { ToolStripItem item = menu.DropDownItems[i]; ToolStripItemTag tag = item.Tag as ToolStripItemTag; if (tag != null && tag.IncludeSeparator) { ToolStripSeparator sep = MenuTools.CreateSeparator(item.Name + "_SEP"); int j = menu.DropDownItems.IndexOf(item); /* * Menu separator occurs after the menu. */ if (j != -1) { menu.DropDownItems.Insert(j + 1, sep); i++; // increment i to skip new item } } /* * If the item is a menu recurse into any submenus. */ if (item is ToolStripMenuItem) { ToolStripMenuItem menuItem = item as ToolStripMenuItem; if (menuItem.DropDownItems.Count > 0) { UpdateMenuDropDownItems(menuItem); } } } /* * The rule is that evey menu item group should end on a * separator. In some cases this will mean the last item * is a separator so we go through each menu and remove them. */ int count = menu.DropDownItems.Count; if (count > 0) { ToolStripItem lastItem = menu.DropDownItems[count - 1]; if (lastItem is ToolStripSeparator) { menu.DropDownItems.RemoveAt(count - 1); } } }