代码之家  ›  专栏  ›  技术社区  ›  fishhead

如何获取一个上下文菜单项的索引

  •  1
  • fishhead  · 技术社区  · 16 年前

    我想确定所选上下文菜单项的索引。但我不想为每个菜单项构建一个唯一的事件处理程序…我该怎么做

    MenuItem mi=   StatusContextMenu.MenuItems.Add("Set option");
      mi.MenuItems.Add(0,new MenuItem("Set to A", new EventHandler(SetLetter)) );
      mi.MenuItems.Add(1,new MenuItem("Set to B", new EventHandler(SetLetter)));
      mi.MenuItems.Add(2,new MenuItem("Set to C ", new EventHandler(SetLetter)));
      mi.MenuItems.Add(3,new MenuItem("Set to D", new EventHandler(SetLetter)));
    
    private void SetLetter(object sender, System.EventArgs e)
    {
      index = ????
    }
    

    1 回复  |  直到 16 年前
        1
  •  3
  •   Reddog    16 年前

    您可以强制转换“sender”参数(强制转换为MenuItem)以在mi.MenuItems集合中查找索引。

    或者,我会使用匿名函数设置事件处理程序。。。

    例如。

    mi.MenuItems.Add(0,new MenuItem("Set to A", (s, e) => SetLetter("A"));
    

    private void SetLetter(string letterToSetTo)
    {
    }
    
    推荐文章