检查在上下文菜单条中单击了哪个子菜单项

Vik*_*nte 4 .net c# contextmenu

网格控件中有一个ContextMenuStrip.

我把它命名为GridContextMenu.

GridContextMenu使用以下代码填充4-5个项目:

 gridcontextMenu.Items.Add(new ToolStripMenuItem
                        {
                            Name = Plants,
                            Text = Plants,
                            Tag = Plants,
                            Width = 100,
                            Image = <image source is put here>
                        });

gridcontextMenu.Items.Add(new ToolStripMenuItem
                        {
                            Name = Animals,
                            Text = Animals,
                            Tag = Animals,
                            Width = 100,
                            Image = <image source is put here>
                        });
Run Code Online (Sandbox Code Playgroud)

对于工具条中的动物菜单,我按以下方式添加子菜单

(gridcontextMenu.Items[1] as ToolStripMenuItem).DropDownItems.Add("Tiger", image_source, new EventHandler(SubmenuItem_Click));
(gridcontextMenu.Items[1] as ToolStripMenuItem).DropDownItems.Add("Lion", image_source, new EventHandler(SubmenuItem_Click));
(gridcontextMenu.Items[1] as ToolStripMenuItem).DropDownItems.Add("Elephant", image_source, new EventHandler(SubmenuItem_Click));
Run Code Online (Sandbox Code Playgroud)

在SubmenuItem_Click事件处理程序中,我需要知道单击了哪个动物子菜单.

怎么做到这一点?

目前我有以下方式的事件处理程序代码:

private void SubmenuItem_Click(object sender, EventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)

如何在这个事件中检查选择了哪个动物子菜单的条件?请分享答案.

Tig*_*ran 11

你可以这样做:

private void SubmenuItem_Click(object sender, EventArgs e)
{
    var clickedMenuItem = sender as MenuItem; 
    var menuText = clickedMenuItem.Text;

    switch(menuText) {
        case "Tiger":
           break;

        case "Lion":
          break;
         . ...
    }
}
Run Code Online (Sandbox Code Playgroud)