现在想实现这样的功能,就是treeview的动态加载。
这里的动态加载是指,展开一个结点时,从数据源中读取此结点的子结点,并加载进来。这样做的目的是不想一次加载完一棵树的所有数据,因为会比较慢。比如我要加载全国行政组织机构,不可以一次全部都加载,而是展开某省时,才加载这个省的下一级结点(也就是地市级)。难度在于获取不到展开的结点。有人知道如何获得吗?
展开结点是通过点击结点前面的+号来展开的。不存在selectednode。winformtreeview动态加载展开结点

解决方案 »

  1.   

    有事件,beforeexpand,展开前触发,在这里读取属于该节点的下级节点,node的tag属性可以保存记录id
      

  2.   

    嗯,我也是这么想的。加了个beforeexpand事件。但关键是获取不到正在展开的结点啊?是通过点击结点前面的+来展开结点的。
      

  3.   

    在treeView1_NodeMouseClick  的e可以点出当前节点的tag属性,tag里面存放ID  不知道楼主是否明白
      

  4.   

    先判断tag是否存在,存在的话,在当前节点下面,查询数据库添加节点
      

  5.   

     private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                if (e.Node.Tag != null)
                {
                    e.Node.Nodes.Clear();
                    TreeNode node = new TreeNode("虹口");
                    TreeNode node1 = new TreeNode("浦东");
                    e.Node.Nodes.Add(node);
                    e.Node.Nodes.Add(node1);
                }        }
    这是简单的静态 点击添加,我也是新人,希望对你有帮助