简体   繁体   English

想要右键单击ToolStripMenuItem的子菜单-C#

[英]want submenu on right mouse click of ToolStripMenuItem - C#

I have one Toolstrip control inside that i am adding some ToolStripMenuItem. 我里面有一个Toolstrip控件,正在添加一些ToolStripMenuItem。 For every ToolStripMenuItem, I want one submenu (like Close). 对于每个ToolStripMenuItem,我都需要一个子菜单(如“关闭”)。 And click of right mouse button on any ToolStripMenuItem that submenu should show. 然后在子菜单应显示的任何ToolStripMenuItem上单击鼠标右键。

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

But this is not working. 但这是行不通的。 Please suggest me something. 请给我一些建议。 Thank You 谢谢

What is "items" object? 什么是“项目”对象?

Adding submenu: 添加子菜单:

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

Now it's the matter of subscribing to events. 现在是订阅事件的问题。

You want the submenu to appear on right mouse click. 您希望子菜单显示在鼠标右键上。 Normally it'll appear when mouse hovers over item that has a submenu. 通常,当鼠标悬停在具有子菜单的项目上时,它将显示。 So if you're set on doing it your way, I suppose you'll have to add it manually when main toolStripItem is right clicked. 因此,如果您按自己的方式进行设置,那么我想您必须在右键单击主toolStripItem时手动添加它。

ToolStripMenuItem doesn't have MouseClick event. ToolStripMenuItem没有MouseClick事件。 You can remember which mouse button was clicked in MouseDown event, then handle it in Click event. 您可以记住在MouseDown事件中单击了哪个鼠标按钮,然后在Click事件中进行处理。

Also you should remember that adding one instance of ToolStripMenuItem to one menu multiple times, or adding the same item to multiple menus, won't work. 您还应该记住,多次将ToolStripMenuItem的一个实例添加到一个菜单,或将相同的项目添加到多个菜单,将不起作用。 You'll have to create new item every time. 您每次都必须创建一个新项目。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM