Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

How to separate MenuItems with a horizontal line programatically

4.76/5 (13 votes)
2 Oct 2011CPOL 44.3K  
A MenuItem with special text is rendered as a separator

When my application needed a menu, I chose to code it instead of using the Visual Studio Designer (reasons are out of the scope of this tip).


Then, a new demand arose: a menu item separator should be placed between two menu items to strengthen the grouping of related menu items. But MainMenu doesn't accept a ToolStripSeparator to be added to it nor to its subitems.


But there is a workaround: Simply create a MenuItem with a single dash as descriptive text. It will get converted to a full-width menu item separator when rendered in the menu. A tiny code example follows:



C#
this.Menu = new MainMenu();
this.Menu.Add(
    FirstMenuItem,
    SecondMenuItem,
    new MenuItem("-"),
    ThirdMenuItem
);


Hope it helps someone.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)