上下文菜单如何共享主菜单中的菜单项?  主菜单做好了,如何用代码创建上下文菜单项? 其中的菜单项是主菜单中的某一列。

解决方案 »

  1.   

    遍历MenuItem生成一个ContextMenu应该就ok了
      

  2.   

    考虑采用复制方法,可以复制菜单项的文字,但是如何复制菜单项的事件呢?
      ToolStripMenuItem item=new ToolStripMenuItem();
      item.Text = editmenu.Text;   //editmenu 是主菜单中的某一项  item.Click+=editmenu.click ?   //出错,click 只能出现在+=的左边 试图采用反射查找委托事件列表,也不行
      

  3.   

      谢楼上,主菜单是用MenuStrip做的,若是以前的MenuItem,问题倒是可以解决的。
         如何   遍历MenuItem?
      

  4.   

    查了下MSDN
     editToolStripMenuItem_DropDownOpening,而在主菜单中的editToolStripMenuItem_DropDownOpening中,
    再加入上下文菜单中的内容。
      
     可是有个问题,在editToolStripMenuItem_DropDownOpening加入时,
      也就是第一次按右键,没有显示,而第二次才有显示菜单
      

  5.   

    上面写错了,应是在上下文菜单的Opening 事件中加入主菜单的内容,
    在主菜单的 DropDownOpening 中再加入上下文中的内容。
    类似于:
        while (true)
                {
                    if (contextMenuStrip1.Items.Count == 0)
                        break;
                  
                    editToolStripMenuItem.DropDownItems.Add(contextMenuStrip1.Items[0]);
                   
                }
      问题就是: 当第一次打开上下文菜单时没有菜单显示,要再按右键才有,如何解决呢?