C# 如何向WinForms上下文菜单添加分隔符?

C# 如何向WinForms上下文菜单添加分隔符?,c#,winforms,contextmenu,separator,C#,Winforms,Contextmenu,Separator,在我的控制范围内,我有: 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",

在我的控制范围内,我有:

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"));

如何在此上下文菜单中添加分隔线?

我相信这只是一个破折号:

ContextMenu.MenuItems.Add("-");

如果您使用的是设计器,请使用与命名菜单项相同的方式将一个连字符“-”作为文本。按enter键后,将创建分隔符。

将文本属性设置为连字符。

在WPF中:

ContextMenu.MenuItems.Add(new Separator());

这和破折号一样有效,我怀疑Winforms会将破折号转换为ToolStripSeparator。我个人认为这个解决方案对于任何需要维护代码的人来说都是显而易见的

yourContextMenu.Items.Add(new ToolStripSeparator());

也许在VisualStudio的更高版本中,他们简化了这一点。我用的是VS2012。您可以通过表单设计器添加分隔符。 1) 选择/创建菜单提示。 2) 在“此处键入”上,单击鼠标右键。 3) 选择“插入”。 4) 选择“分隔符”。 5) 将新分隔符拖动到您希望其位于上方的文本。
完成。

ContextMenu
已接收
MenuItem
对象数组。不用说,您不能向该数组添加字符串。但是,您可以通过添加
新菜单项(“-”
)来获得分隔符:


水平分离器很酷,但是如果你想要一个垂直分离器呢

好吧,别担心,你可以有一个

MenuItem
上将属性设置为
true
,它应该是分隔符后的第一个:

var item = new MenuItem(text: "Settings", onClick: SomeFunction) { BarBreak = true };


要将项目添加到
MenuItems
集合中,请执行以下操作:
yourContextMenu.MenuItems.add(item)

这是Windows中许多文档记录不良的项目之一。几个月前我就需要这么做了。我记得我可以在Win32中完成,但不记得语法。我最终找到了一些旧的VC++6文件来找到它。顺便说一句,我还是偶尔会提到“佩佐尔德的书”中的一些东西。哇,我觉得自己老了…这肯定更可读
ContextMenu.Items.Add(新工具条带分隔符())请参见@MarkJ,ContextMenu不再具有Items属性。ToolStripSeparator()也不是ContextMenu.Items.Add()的有效参数。请注意,您可以通过在Visual Studio Windows窗体设计器的菜单设计器的“此处键入”输入字段中输入连字符直观地执行此操作。分隔符将立即出现在设计器中。@SqlRyan您可以研究一下这个问题吗?我想您可以帮助我解决这个问题。Net 2 winforms ContextMenu类没有Items属性。这只能在ContextMenuStrip中使用,而不能在ContextMenu中使用。您可以执行
yourContextMenu.Items.Insert(3,new ToolStripSeparator());
,但您不能插入破折号“-”。非常感谢。名称前面的“&”有什么用?@GerbenLimburg:“&”允许您设计用户可用的快捷键(称为“助记符”)(与Alt组合)。
var item = new MenuItem(text: "Settings", onClick: SomeFunction) { BarBreak = true };