//道理讲了也没用,测试的结果已经如此
//如果要支持右键选中可以参考如下代码:private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
((TreeView)sender).SelectedNode = e.Node;
}

解决方案 »

  1.   

    if(e.Button == MouseButtons.Right)
    {
       
             TreeNode tn = this.TreeView.GetNodeAt(e.X,e.Y);//得到选中的的 node
             if(tn==null)
             {
             }
             else if( tn.Bounds.Contains( e.X, e.Y ) )
             {
             }
             else
             {
                  tn=null;
             }
             TreeView.SelectedNode = tn;
    }  
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 最新版本:20070212http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  2.   

    //如果我没理解错的话,应该是这个效果
    bool rightClickNode = false;
    private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
    {
        e.Cancel = !rightClickNode;
        rightClickNode = false;
    }private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
    {
        if (e.Button == MouseButtons.Right)
        {
            ((TreeView)sender).SelectedNode = e.Node;
            rightClickNode = true;
        }
    }
      

  3.   

    if (e.Button == MouseButtons.Right) //鼠标右键
                {
                    //bEditPopup.Displayed = false;
                    //bEditPopup.PopupMenu(Control.MousePosition);                 itemMenu.E.Displayed = false;
                    itemMenu.E.PopupMenu(Control.MousePosition);                if (this.CarTree.SelectedNode != null)
                    {
                        NewTreeNode tn = (NewTreeNode)this.CarTree.SelectedNode;
                        //车辆或分组选中时菜单有效
                        itemMenu.EmuMod.Enabled = ((tn.Flg == (byte)CarSysText.NodeFlag.GupFlg) || (tn.Flg == (byte)CarSysText.NodeFlag.CarFlg));
                        itemMenu.EmuDel.Enabled = ((tn.Flg == (byte)CarSysText.NodeFlag.GupFlg) || (tn.Flg == (byte)CarSysText.NodeFlag.CarFlg));
                        itemMenu.EmuGroup.Enabled = ((Car.ShType) || ((!Car.ShType) && (tn.Flg != (byte)CarSysText.NodeFlag.CarFlg)));
                    }
                    
                }