如何在C#中为WinForms菜单添加分隔符?

Ada*_*rce 99 c# contextmenu separator winforms

在我的掌控之中,我有:

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"));
Run Code Online (Sandbox Code Playgroud)

我怎么做一个菜单分隔符?

Sql*_*yan 216

我相信这只是一个冲刺:

ContextMenu.MenuItems.Add("-");
Run Code Online (Sandbox Code Playgroud)

  • 当然这更具可读性`ContextMenu.Items.Add(new ToolStripSeparator());`参见[Gabriel的答案](http://stackoverflow.com/a/5880762/15639) (24认同)
  • @MarkJ,ContextMenu不再具有Items属性.ToolStripSeperator()也不是ContextMenu.Items.Add()的有效参数. (9认同)
  • 请注意,您可以通过在 Visual Studio Windows 窗体设计器的菜单设计器的“在此处键入”输入字段中输入连字符来直观地执行此操作。分隔符将立即出现在设计器中。 (3认同)

小智 47

这与破折号一样有效,我怀疑Winforms会将破折号转换为ToolStripSeparator.我认为这个解决方案对于那些必须维护代码的人来说更为明显.

yourContextMenu.Items.Add(new ToolStripSeparator());
Run Code Online (Sandbox Code Playgroud)

  • 这仅适用于ContextMenuStrip,而不适用于ContextMenu. (6认同)
  • .Net 2 winforms ContextMenu类没有Items属性. (5认同)

al2*_*rez 11

在WPF中:

ContextMenu.MenuItems.Add(new Separator());
Run Code Online (Sandbox Code Playgroud)


Azi*_*ziz 7

如果您使用的是Designer,请将单个连字符" - "作为文本,与命名菜单项的方式相同.点击Enter后,将创建分隔符.