【问题标题】: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 的一个实例多次添加到一个菜单,或将同一个项目添加到多个菜单,是行不通的。您每次都必须创建新项目。