如何获取子菜单项的“上下文菜单”单击事件

本文关键字:菜单 上下文 上下文菜单 事件 单击 菜单项 何获取 获取 | 更新日期: 2023-09-27 18:17:00

我有以下代码,它创建了一个上下文菜单,其中包含子菜单;

ContextMenuStrip oContextMenuStrip = new ContextMenuStrip();
ToolStripSeparator oToolStripSeparator = new ToolStripSeparator();
ToolStripMenuItem oToolStripItem = new ToolStripMenuItem();
oToolStripItem.Text = "Change Status";
oToolStripItem.DropDownItems.Add("Booked", 1);
oToolStripItem.DropDownItems.Add("Pending", 2);
oToolStripItem.DropDownItems.Add("Cancelled", 3);
oContextMenuStrip.Items.Add(oToolStripItem);
oContextMenuStrip.Items.Add(oToolStripSeparator);
oContextMenuStrip.ItemClicked += new ToolStripItemClickedEventHandler(ContextMenuClick_ItemClicked);
void ContextMenuClick_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    ToolStripItem oToolStripItem = e.ClickedItem;
}

我遇到的问题是事件ContextMenuClick_ItemClicked只在用户单击Change Status菜单时调用。我需要什么事件才能捕获项目的点击事件,如"预订"

如何获取子菜单项的“上下文菜单”单击事件

使用其他版本的ToolStripItemCollection。添加方法:

public ToolStripItem Add(
    string text,
    Image image,
    EventHandler onClick
)

ToolStripItemCollection。添加方法(字符串,图像,eventandler)

例如:

oToolStripItem.DropDownItems.Add("Booked", null, (s, e) => BookedClicked());

然后:

private void BookedClicked() {
  // Do your magic
}