在WinForm中,点击TreeView控件节点,就展开当前节点,怎么作呢??那里有源码示例

解决方案 »

  1.   

    TreeView tv = new TreeView();tv.ExpandAll();  //节点单击事件中写
      

  2.   

    楼主能讲仔细些吗?怎么个“点击TreeView控件节点,就展开当前节点”
      

  3.   

    比如有个树
    AAA-
      |_afadfad
      |_AAA
      |_ADFASDF
    BBB-
      |_ADFASD
      |_AFFAF
    CC-
     如果BBB是收缩的,我只要点击(注意不是双击)BBB就能展开这个节点,而其它节点不影响!!!
      

  4.   

    treeView 好象有个nodeClick事件的,看看吧!~~叫什么名字不太记得了!~
    在那事件里面写
      

  5.   

    叫做 treeView1_AfterSelect 事件
      

  6.   

    private void treeView1_MouseClick(object sender, MouseEventArgs e)
            {
                if(e.Button != System.Windows.Forms.MouseButtons.Left)
                    return;
                
                TreeNode node = this.treeView1.GetNodeAt(e.Location);
                if(node.IsExpanded)
                {
                    node.Collapse();
                }
                else
                {
                    node.Expand();
                }
            }
      

  7.   

    你点击的是BBB这个节点吗?还是选中了BBB这个节点
    一、选中时,可以在treeView1_AfterSelect 事件中写e.Node.Expand();
    二、如果只是单击一下,可以这样private void treeView1_Click(object sender, EventArgs e)
            {
                TreeNode ltn_select = tv_tree.SelectedNode;
                ltn_select.Expand();
            }
    其实这两者可以合并为后者
      

  8.   

    剑问天:
    我在Treeview的Click这样写的
    TreeNode node = this.treeView1.GetNodeAt(pp);//pp是我获取的TreeView的节点坐标
    if(node.IsExpanded)
    {
    node.Collapse();
    }
    else
    {
    node.Expand();
    }
    点击其它节点,只是在第一个节点展开和收缩呢????
      

  9.   

    已经结贴了?呵呵,还是回答一下,希望搂主能看到。你用Click事件么?
    我建议使用MouseClick事件(我用的是2005,这个事件是在Framework2.0中新增的),事件的参数直接包含鼠标点击的坐标。我怀疑你的pp的坐标选的不正确。选择坐标时一定要注意,分清你得到的是屏幕坐标(以屏幕左上角为原点)还是窗体坐标(以窗体左上角为原点),还要看清函数要求的是哪种坐标。
    比如Treeview.GetNodeAt()方法,就要求参数为窗体坐标。