111

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

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 中添加分隔线?

4

8 回答 8

239

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

ContextMenu.MenuItems.Add("-");
于 2009-08-28T23:26:18.137 回答
57

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

yourContextMenu.Items.Add(new ToolStripSeparator());
于 2011-05-04T08:39:55.323 回答
11

在 WPF 中:

ContextMenu.MenuItems.Add(new Separator());
于 2010-03-17T14:42:19.633 回答
7

如果您使用的是设计器,请将单个连字符“-”作为文本放置,就像命名菜单项一样。点击回车后,将创建分隔符。

于 2009-08-28T23:27:19.507 回答
3

将 text 属性设置为连字符。

于 2009-08-28T23:28:36.417 回答
2

水平分隔符很酷,但是如果你想要一个垂直分隔符呢?

好吧,不用担心——你可以拥有一个!

BarBreak属性设置为trueonMenuItem应该是分隔符之后的第一个:

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

在此处输入图像描述

要将项目添加到MenuItems集合中:yourContextMenu.MenuItems.Add(item)

于 2019-10-28T00:06:53.303 回答
1

也许在更高版本的 Visual Studio 中,他们让这变得更简单了。我正在使用 VS 2012。您可以通过表单设计器添加分隔符。1) 选择/创建一个 MenuStrip。2) 在“在此处输入”,鼠标右键。3) 选择“插入”。4) 选择“分隔符”。5) 将新分隔符拖到您希望它位于上方的文本上。完毕。

于 2014-11-14T19:37:38.860 回答
0

ContextMenu一个构造函数,它接收一个对象数组MenuItem。不用说,您不能向该数组添加字符串。但是,您可以通过添加一个分隔符new MenuItem("-")

    var contextMenu = new ContextMenu(new[]
    {
        timerMenuItem,
        keypressMenuItem,
        new MenuItem("-"), // Seperator
        new MenuItem(text: "Exit", onClick: (sender, args) => Application.Exit())
    });
于 2019-10-27T23:41:06.260 回答