【问题标题】:want submenu on right mouse click of ToolStripMenuItem - C#想要鼠标右键单击 ToolStripMenuItem 的子菜单 - C#
【发布时间】:2013-07-10 05:53:09
【问题描述】:

我有一个工具条控件,我正在添加一些工具条菜单项。对于每个 ToolStripMenuItem,我想要一个子菜单(如关闭)。并且在子菜单应显示的任何 ToolStripMenuItem 上单击鼠标右键。

ToolStripMenuItem subMenuitem1 = new ToolStripMenuItem("Close");
items.DropDownItems.Add(subMenuitem1);

但这不起作用。 请给我一些建议。 谢谢你

【问题讨论】:

    标签: c# toolstrip toolstripmenu


    【解决方案1】:

    什么是“项目”对象?

    添加子菜单:

    // new menu, if you're using designer you should have it already
    ContextMenuStrip mnu = new ContextMenuStrip();
    
    // new tool strip item
    ToolStripMenuItem mnuItem1 = new ToolStripMenuItem();
    mnuItem1.Text = "Some text 1";
    mnuItem1.Name = "mnuItem1";
    
    // new submenu item
    ToolStripMenuItem mnuItem2 = new ToolStripMenuItem();
    mnuItem2.Text = "Some text 2";
    mnuItem2.Name = "mnuItem2";
    
    // connect them...
    mnuItem1.DropDownItems.Add(mnuItem2);
    mnu.Add(mnuItem1);
    

    现在是订阅事件的问题。

    您希望在单击鼠标右键时出现子菜单。通常它会在鼠标悬停在具有子菜单的项目上时出现。因此,如果您打算按照自己的方式进行操作,我想您必须在右键单击主 toolStripItem 时手动添加它。

    ToolStripMenuItem 没有 MouseClick 事件。您可以在 MouseDown 事件中记住单击了哪个鼠标按钮,然后在 Click 事件中进行处理。

    您还应该记住,将 ToolStripMenuItem 的一个实例多次添加到一个菜单,或将同一个项目添加到多个菜单,是行不通的。您每次都必须创建新项目。

    【讨论】:

      猜你喜欢
      • 2016-07-25
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 2011-08-27
      • 2021-08-19
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      相关资源
      最近更新 更多