public static void MenuCopy(ContextMenuStrip src, ContextMenuStrip dest)
        {
            for (int i = 0; i < src.Items.Count; i++)
            {                                
                dest.Items.Insert(i, src.Items[i]);                
            }
        }
我是想两个菜单的部分引用是要一样的

解决方案 »

  1.   

    是两个上下文菜单实现相同功能吗?如果是的话,你可以把两个对应的ITem名称设置为相同,单击的时候响应的便是相同事件,从而实现相同功能
      

  2.   

    那你直接让dest的引用只想src不就可以了吗.
    dest = src
      

  3.   

    我想问为什么执行dest.Items.Insert(i, src.Items[i]);一下src.items.count就少一个??
      

  4.   

    这两个的个数不一样啊
    你就直接添加就好了        private void panel1_MouseUp(object sender, MouseEventArgs e)
            {
                this.contextMenuStrip1.Show();
                contextMenuStrip1.Left = e.X;
                contextMenuStrip1.Top = e.Y;
            }        private void panel2_MouseUp(object sender, MouseEventArgs e)
            {
                this.contextMenuStrip2.Show();
                this.contextMenuStrip2.Left = e.X;
                contextMenuStrip2.Top = e.Y;
            }        private void cToolStripMenuItem_Click(object sender, EventArgs e)
            {
                for(int i=0;i<contextMenuStrip1.Items.Count;i++)
                {
                    contextMenuStrip2.Items.Insert(i, contextMenuStrip1.Items[i]);
                }
            }
      

  5.   

    不要insert,那肯定没有了
    你新建一个ToolStripItemCollection集合,然后把第一个菜单的这个集合深度拷贝一个,然后就可以添加了,就是new一个第一个的菜单集合,然后把这个new出来的集合添加到第二个里面就可以了
      

  6.   

    MenuItem等控件只能属于一个父控件,如果要多个MenuItem响应同样的事件,请在MenuItem相应的Click+=你的事件响应代码