在treeView1_Click事件中:slectednode=this.treeView1.SelectedNode;为什么我第一次要点某一子项时,为null,第二次以后就是该子项;而连续点子项后又第一次点它的根节点时,slectednode还是原来的子项?就时说,为什么有个延迟?如何解决?

解决方案 »

  1.   

    添加AfterSelect事件,把当前节点赋给slectednode,代码如下:
    treeView1_AfterSelect(object sender,TreeViewEventArgs e)
    {
        this.slectednode = e.Node;
    }
      

  2.   

    treeView1_Click事件在treeView1_AfterSelect事件前!!还有人吗??
      

  3.   

    用afterselect事件,TREENODE一般不用CLICK事件吧.
      

  4.   

    //MouseDown 中if(e.Button == MouseButtons.Left)
    {
    TreeNode node = treeView1.GetNodeAt(e.X,e.Y);
    if (node!=null)
    {
    treeView1.SelectedNode = node;
    }
    }
      

  5.   

    可是我要连续点该怎么办?afterselect它只对间隔点有反映!getnode方法可满足我的要求么?
      

  6.   

    private void Tree_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    TreeNode TempNode = Tree.GetNodeAt( e.X , e.Y );
    if ( TempNode != null )
    {
    Tree.SelectedNode = TempNode;
    if ( e.Button == MouseButtons.Left )
    {
                                              //do your work
    }
    }
    }