Inside my control, I have:
ContextMenu = new ContextMenu();
ContextMenu.MenuItems.Add(new MenuItem("&Add Item", onAddSpeaker));
ContextMenu.MenuItems.Add(new MenuItem("&Edit Item", onEditSpeaker));
ContextMenu.MenuItems.Add(new MenuItem("&Delete Item", onDeleteSpeaker));
ContextMenu.MenuItems.Add( ??? );
ContextMenu.MenuItems.Add(new MenuItem("Cancel"));
How to add a separation line to this ContextMenu?
我相信这只是一个破折号:
ContextMenu.MenuItems.Add("-");
This works just as well as the dash, and i suspect the Winforms will translate the dash to a ToolStripSeparator. I for one think this solution is more obvious for anyone who has to maintain the code.
yourContextMenu.Items.Add(new ToolStripSeparator());
在 WPF 中:
ContextMenu.MenuItems.Add(new Separator());
If you are using the Designer, place a single hyphen "-" as text the same way you would name your menu items. After hitting enter, the separator will be created.
将 text 属性设置为连字符。
Horizontal separators are cool, but what if you want a vertical separator instead?
Well, worry ye not - you can have one!
Set BarBreak
property to true
on the MenuItem
which should be the first one after the seperator:
var item = new MenuItem(text: "Settings", onClick: SomeFunction) { BarBreak = true };
To add the item to a MenuItems
collection: yourContextMenu.MenuItems.Add(item)
.
Perhaps in later versions of Visual Studio they made this simpler. I'm using VS 2012. You can add a separator via the forms designer. 1) Select/Create a MenuStrip. 2) On "Type Here", right mouse. 3) Select "Insert". 4) Select "Separator". 5) Drag the new separator to the text you want it to be above. Done.
ContextMenu
has a constructor which receives an array of MenuItem
objects. Needless to say, you can't add a string to that array. You can however get a seperator by adding a new MenuItem("-")
:
var contextMenu = new ContextMenu(new[]
{
timerMenuItem,
keypressMenuItem,
new MenuItem("-"), // Seperator
new MenuItem(text: "Exit", onClick: (sender, args) => Application.Exit())
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.