我实现的这棵树假设有2个层次,第一个层:机构集层次(一个装饰的层次,就这一个Node){"机构集层次"}
第二个层: 机构集{大学,政府}
我现在设计了二个右键菜单
第一个关联机构集层次:新建机构集
第二个关联机构集:编辑机构集,删除机构集我的解决方案是,每次在控件AfterSelected的事件里
判断这个是树的那个层次,如果是Selected的是第一层,我就关联一个右键菜单,如果是第二个类似.但是有那个这个事件判断有有个不好的界面友好性就是:
具体事例是:当我左键,点击了第一个层次(机构集层次),然后马上右键,点击第二个层次(假设是{大学}),它所获取的SelectedNode仍然是 {"机构集层次"}。
有没有直接判断右键的事件啊?或者别的技巧啊?我的目的就是,右键在相应的节点上弹出相应的右键菜单。

解决方案 »

  1.   

    try
    处理
    oncontextmenu
    事件
      

  2.   

    To:hdt(倦怠) 
    能说清楚一点吗?
    谢谢了!
      

  3.   

    我用的是Windows Form控件数啊
      

  4.   

    To :hu_jun(军)  
    看不太明白阿
      

  5.   

    因为获取SelectNode 会有一点界面不友好的问题.
      

  6.   

    问题已经解决了,一个回答朋友,就把分都给你.
    解决方案:在MouseDown事件里判断是不是右键点击,
    然后用
    try
    {
        TreeNode node = TreeView.GetNodeAt(e.X,e.Y);
        ....
        this.Tree.SelectedNode = node;
    }
      

  7.   

    你这么写还是会有一点滞后(第一次点击空白处时,会有一点延迟)
    可以这么写
    if(TreeView.GetNodeAt(e.X,e.Y)!=null)
    {}//选中
    else
    {}//未选中