在TreeView上加一个右键菜单(ContextMenuStrip控件)直接鼠标右键点击在TreeView的节点上,焦点还在之前地方现在我想让焦点在右键点击哪个节点,哪个节点就被focus,请问怎么怎么做?

解决方案 »

  1.   

    private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    if(e.Button==MouseButtons.Right)
    {
    this.treeView1.SelectedNode  = this.treeView1.GetNodeAt(e.X,e.Y);
    }
    }
      

  2.   

    不错,就是这样,估计你想添加的右键菜单是对节点执行操作的,可是菜单只能加在treeview上,可以在上面的代码中动态加入右键菜单:
    private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) 

    if(e.Button==MouseButtons.Right) 

                    TreeNode tn = tree_View.GetNodeAt(e.X, e.Y);
                    if (tn != null)
                    {
                        treeView1.SelectedNode  = tn;
                        treeView1.ContextMenuStrip = ContextMenuStrip1;
                        ManageNode(tn);
                    }
                    else
                        treeView1.ContextMenuStrip = null;

    这样你的鼠标点在TreeView控件中没有节点的其它空白处就不会弹出ContextMenuStrip了
      

  3.   


            private void contentTree_MouseDown(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                    _ContentTree.SelectedNode = _ContentTree.GetNodeAt(new Point(e.X, e.Y));
            }
      

  4.   

    补充一下,忘记解释一下了, ManageNode(tn),是指选中节点后需要做的操作做了个方法,我做的程序中有这个需要,你用不到可以去掉,呵呵