在鼠标点击的时候动态添加MenuItem不就行了嘛!

解决方案 »

  1.   

    1: 定义一个context菜单在TreeView上,把针对不同节点的所有操作都包含进去,完成每个操作的click事件,初始化的时候每个菜单都visible = false
    2:选中一个节点(右健)
    private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) 
     

          if(e.Button == MouseButtons.Right) 
         { 
               treeView1.SelectedNode = treeView1.GetNodeAt (e.X ,e.Y ); 
          } 
    if(treeView1.SelectedNode != null)
    {
    根据选中的节点的不同类型来显示不同的菜单选项}
    }3 鼠标离开的时候,关闭显示的菜单选项private void treeView1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) {
        根据不同的节点,关闭不同的菜单
    }