1、如何实现鼠标右击节点事件?
2、如何弹出选择菜单?

解决方案 »

  1.   

    1.直接拉个contextMenuStrip进来表单
    2.设置treeview的contextMenuStrip为contextMenuStrip1
    3.在treeView的AfterSelect事件取得节点node的值
    4.然后contextMenuStrip的ItemClicked事件写对应的处理
      

  2.   

    更下一下  雪上吹风,光着身子淋暴雨  的不应该使用 afterselect用 treeview.getnodeat()
    -----------------------
          CSDN 论坛助手 
      http://china-csdn.cn
      

  3.   

    设置
    TreeNode.ContextMenu 属性

    TreeNode.ContextMenuStrip 属性
    为树节点添加关联菜单.
      

  4.   

    右键选中节点,可以参考下面的代码:
    private void treeView1_MouseDown(object sender, MouseEventArgs e)
    {
    if (e.Button == MouseButtons.Right)
    {
    TreeNode node = this.treeView1.GetNodeAt(e.Location);
    if (node != null)
    {
    this.treeView1.SelectedNode = node;
    }
    }
    }
      

  5.   

    private void tv_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
     string tvn;
     string tvnp;
     string tvnpp;
     string tvnppp;
     int selectIndex; if(e.Button==MouseButtons.Right)
    { if(tv.GetNodeAt(e.X,e.Y)!=null)
    {
    this.tvn=tv.GetNodeAt(e.X,e.Y).Text;

    if(tv.GetNodeAt(e.X,e.Y).Parent!=null)
    {
    this.tvnp=tv.GetNodeAt(e.X,e.Y).Parent.Text;

    if(tv.GetNodeAt(e.X,e.Y).Parent.Parent!=null)
    {
    this.tvnpp=tv.GetNodeAt(e.X,e.Y).Parent.Parent.Text;

    if(tv.GetNodeAt(e.X,e.Y).Parent.Parent.Parent!=null)
    {
    this.tvnppp=tv.GetNodeAt(e.X,e.Y).Parent.Parent.Parent.Text;
    }
    }
    }
    }
    this.selectIndex=tv.GetNodeAt(e.X,e.Y).SelectedImageIndex;
    if(this.selectIndex==0)
    {
    tv.ContextMenu=null;
    }
    else if(this.selectIndex==1)
    {
    tv.ContextMenu=null;
    tv.ContextMenu=this.tvaddcontextMenu;
    }
    else if(this.selectIndex==2)
    {
    tv.ContextMenu=null;
    tv.ContextMenu=this.tvcontextMenu;
    }
    else if(this.selectIndex==3)
    {
    tv.ContextMenu=null;
    tv.ContextMenu=this.tvdeletmendcontextMenu;
    }
    else if(this.selectIndex==4)
    {
    tv.ContextMenu=null;
    tv.ContextMenu=this.tvaddcontextMenu;
    }
    else if(this.selectIndex==5)
    {
    tv.ContextMenu=null;
    tv.ContextMenu=this.tvaddcontextMenu;
    }
    else if(this.selectIndex==6)
    {
    tv.ContextMenu=null;
    tv.ContextMenu=this.tvcontextMenu;
    }
    }
    }
      

  6.   

    生成个contextMenuStrip的实例,设置treeview的contextMenuStrip,最后在MouseDown事件中处理一下就可以啦。