WinForm 应用程序:右键点击某个树节点,实际上还是在上次鼠标左键点击的一个节点。
时常会发生这样事,比如拿QQ说。我右键从命名分组。会出现你之前点的那个组可编辑。
而右键选择的组却没有被选中。
当然这类问题偶尔还会引发异常,引发时可以被抓获。但是本人就是想要实现右键选择就相当于左键的效果。哪个高手遇到过。?

解决方案 »

  1.   

    当右键点击某节点时,SelectedNode是不会发生变化的,除非你在右键点击的逻辑里,让SelectedNode选择你点击的那个节点。
      

  2.   


           private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {        }
      

  3.   


            private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    this.treeView1.SelectedNode = e.Node;
                    MessageBox.Show(e.Node.Text);
                }
            }
      

  4.   

    private void treeView_MouseClick(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    TreeNode node = treeView.GetNodeAt(e.Location);
                    treeView.SelectedNode = node;
                }
            }
    结贴 给分
      

  5.   

    UP,在右键的事件里先设置selectedNode=你右键点击的那个TreeNode。然后不就OK了?
      

  6.   

    treeview自定义扩充还是比较好的。有很多的扩充余地。相比datagridview定的就比较死。相重绘东西都相当复杂。
      

  7.   

     private void treeView1_MouseClick(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    TreeNode  node=treeView1.GetNodeAt(e.Location);
                    treeView1.SelectedNode = node;                //这里做你要做的操作
                }
            }
      

  8.   

    private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                  ->  this.treeView1.SelectedNode = e.Node;
                    MessageBox.Show(e.Node.Text);
                }
            }-》这句就是拉。可以结贴拉
      

  9.   

    E是TreeNodeMouseClickEventArgs 有 Node属性么。 眼睛一看就不对。。