contextmenu.MenuItems[0].Click += new EventHandler(Delete_Click);

解决方案 »

  1.   

    contextmenu.MenuItems[0].Click += new EventHandler(contextmenu_Click);
      

  2.   

    private void contextmenu_Click(object sender, System.EventArgs e)
    {
        MenuItem item =sender as MenuItem; switch (item.Text)
    {
    case "删除":
    Delete();
    break;
    case "打开":
    Open();
    break;
    }
    }
      

  3.   

    for(int i=0;i<this.ContextMenu.MenuItems.Count;i++)
    {
                 this.ContextMenu.MenuItems[i].Click +=new EventHandler(contextmenu_Click);
    }
      

  4.   

    ???????????????????????????????????
    各位兄弟们你们的方法是:在通过在界面上编辑contextmenu控件得到的上下文菜单时要响应事件,用你们以上说的方法,是行的通的
    现在我是用写代码的方式(如contextmenu.MenuItems.Add("删除"))来添加上下文菜单的,我用过你们上面的响应事件的方法了,结果没反映.就是根本就不响应事件!大家可试试啊
    多谢!急急
      

  5.   

    冷雨夜
       你好!
       我的代码放在treeView1_MouseUp事件中    因为我的上下文菜单是和treeView控件相关联的    你可试试,麻烦你了
        多谢!
      

  6.   

    private void Form1_Load(object sender, System.EventArgs e)
    {
    MenuItem menuI = new MenuItem( "删除" , new EventHandler( del_clik ) );
    this.contextMenu1.MenuItems.Add( 0 , menuI );
    } private void del_clik( object sender, System.EventArgs e )
    {
    MessageBox.Show( "del" );
    }
      

  7.   

    我试了,可以啊
    建议你不要在treeView1_MouseUp事件中增加菜单项
    可以在Form_Load事件中初始化菜单,绑定事件
    可以参照lnzyquan() 
      

  8.   

    private void treeView1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    if(e.Button ==MouseButtons.Right)
    {
    TreeView tv=sender as TreeView;
    tv.ContextMenu =this.contextMenu1;

    }
    }
      

  9.   

    ???????????????因为我在treeview不同的接点中右击有不同的上下文菜单如果我放在Form_Load事件中初始化的能实现点击败treeview不同的接点有不同的上下文菜单吗?请各高手兄弟们帮我一下啊
      

  10.   

    private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
    {
    TreeNode tn = new TreeNode();
    tn = e.Node;
                TreeView tv=sender as TreeView;
    if(tn.Text == "节点1")
    {
    this.ContextMenu.MenuItems.Clear();
    this.ContextMenu.MenuItems.Add("增加节点1");
    this.ContextMenu.MenuItems.Add("删除节点1");
    for(int i=0;i<this.ContextMenu.MenuItems.Count;i++)
    {
    this.ContextMenu.MenuItems[i].Click +=new EventHandler(contextmenu_Click);
    }
    tv.ContextMenu =this.contextMenu1;
    }
    else if(tn.Text == "节点2")
    {
    this.ContextMenu.MenuItems.Clear();
    this.ContextMenu.MenuItems.Add("增加节点2");
    this.ContextMenu.MenuItems.Add("删除节点2");
    for(int i=0;i<this.ContextMenu.MenuItems.Count;i++)
    {
    this.ContextMenu.MenuItems[i].Click +=new EventHandler(contextmenu_Click);
    }
    tv.ContextMenu =this.contextMenu1;
    }
    else
    {
    this.ContextMenu.MenuItems.Clear();
    tv.ContextMenu =null;
    return;
    }
    }
      

  11.   

    其实点不同的树节点,弹出菜单不一样,可以用MenuItem的Enable属性屏蔽掉就可以了啊
    如果知道一共有哪些菜单项的化可以先初始化好,然后根据节点的不同开放菜单项
    我原来就是这样做的,通过treeView1_MouseDown事件处理而不是MouseUp事件
      

  12.   

    jackyoung02(冷雨夜)
      你好
    你说的屏蔽是用写代码屏蔽吧,
     我在treeview控件中该怎么屏蔽呢应该是给所有的上下文菜单先用写代码方式给写出来
    然后根据点击不同的节点而屏蔽不同的菜单吧,怎么实现呢?