在MenuStrip中添加水平分隔符

25

我似乎找不到在MenuStrip中添加水平分隔符的方法。Visual Studio会报错“无法将ToolStropSeparator添加到MenuStrip”。

你有什么想法吗?

11个回答

68
在你想要用分隔符隔开的两个字段之间的空格中,输入:
-

然后按回车键(在设计器中)

如果您需要以编程方式执行此操作,可以使用同样的技巧:

contextMenu1.MenuItems.Add(new MenuItem("-"));

3
LOL!为什么这个没有被标记为答案?这是比打任何代码都更简单、更好的方法。 - ViFer
4
当我尝试这样做时:“无法向MenuStrip添加ToolStripSeparator”。 - dngadelha
2
哇,我一直在编辑设计师文件,因为我找不到在设计师界面中插入它的干净方法。这太完美了。 - KDecker
这个解决方案的简化版本是 contextMenu1.MenuItems.Add("-"); - user2728841

36

我可以运行这样的代码:

this.menuMain.Items.Add(new ToolStripSeparator());

没有遇到任何问题... 你遇到了什么样的错误?


2
我正在使用GUI设计器,当我尝试使用“-”时,它告诉我“无法将ToolStripSeparator添加到MenuStrip”。 - Malfist
当我将它添加到MainForm.Designer.cs中时,它可以工作,谢谢! - Malfist
实际上那样做不起作用。它在设计器中显示,但当我实际运行程序时却没有出现... - Malfist
2
我添加了 mnuMain.Items.Insert(2, new ToolStripSeparator()); 以获得所需的效果。 - Malfist

12

您可以右键单击菜单栏,然后选择“插入” -> “分隔线”。就是这样。


1
我在一个项目中遇到了问题,我的主菜单完全丢失了,我不得不通过编程重新添加它,但我无法重新添加分隔符。经过一番努力,我终于把它全部恢复了。以下是我重新将分隔符添加到菜单的方法:
private void CreateMainMenu()
{
    // I was using a ToolStripMenuItem, so I did this...

    // Just in case, clear the items
    MainMenu.DropDownItems.Clear();

    menu.Items.Add(MainMenu);
    MainMenu.DropDownItems.AddRange(new ToolStripMenuItem[]{
            
        this.optionsMainMenu,
        this.manageLibrariesMainMenu,
        this.helpMainMenu,
        this.aboutMainMenu,
        this.checkForUpdatesMainMenu,
        this.quitMainMenu

     });
        
     // This adds the separators to a specific location
     MainMenu.DropDownItems.Insert(1, new ToolStripSeparator());
     MainMenu.DropDownItems.Insert(3, new ToolStripSeparator());

     optionsMainMenu.DropDownItems.AddRange(new ToolStripItem[]{

         this.serverUpTimeLimitToolStripMenuItem,
         this.enableOnLoadMainMenu,
         this.showInTaskBarMainMenu,
         this.alwaysOnTopMainMenu
        
     });

     optionsMainMenu.DropDownItems.Insert(1, new ToolStripSeparator());

     /* The index number after the "Insert" method corresponds to an
      * integer which will locate the separator in the item collection */
}

如果要使用MenuStrip或ContextMenuStrip来完成此操作,只需将“DropDownItems”替换为“Items”即可。

就是这样。希望能对您有所帮助...


我的菜单是通过编程创建的,这种方法是唯一一个对我有效的。 - Art Hansen

0

菜单栏项没有分隔符。

然而;

您可以选择要在其间添加空格的项目,并设置左侧或右侧边距值。这同样有效。


确实存在一个分隔符类。 - bytedev

0

我喜欢用 - 来代替分隔符。比如说,如果我想要制作一个水平分隔线,我会输入大约30个 - 来创建长度为30的水平虚线。然后,我会将其启用属性设置为 false,这样它就不能被点击,就像垂直分隔线一样。只需在每个项目后面加上 |,你会发现它会创建一个与每个项目相匹配的垂直线。[注意]由于每个项目之间的间距,垂直线将是虚线。


0
步骤: 1. 右键单击 contextmenuStrip 项目 -> 插入 -> 分隔符

或者

  1. a) 单击 ContextMenuStrip 的 Type 文本框,将光标放在您想要放置水平分隔符的位置,然后输入“-”(减号) b) 输入 希望这对您有用 :)


0

这很简单,

右键单击上下文菜单栏图标。 然后选择插入,之后选择分隔符 |


0

由于某些原因,我在VS 2019(16.8.4)中尝试了以上与设计有关的答案,但似乎都不起作用。插入分隔符选项不见了,而在文本中使用“-”也似乎不起作用。

我唯一能够添加分隔符的方法是在设计器中执行以下操作:

右键单击顶部菜单栏 -> 选择编辑DropDownItems

这会弹出一个对话框,允许您添加分隔符(以及任何其他菜单项)。


0
  1. 将MenuStrip添加到窗体中
  2. 单击MenuStrip并在属性窗口中单击“…”项
  3. 在打开的窗口中,在“选择项目并将其添加到下面的列表中”部分中单击添加
    例如,对于3,然后选择toolStripMenuItem1并单击DropDownItems“…”,然后在新打开的窗口中的“选择项目并将其添加到下面的列表中”部分中选择分隔符|并将其添加。 祝好运

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接