日期:2014-05-17  浏览次数:20870 次

winform中treeview动态加载treenode的问题
现在想实现这样的功能,就是treeview的动态加载。
这里的动态加载是指,展开一个结点时,从数据源中读取此结点的子结点,并加载进来。

这样做的目的是不想一次加载完一棵树的所有数据,因为会比较慢。比如我要加载全国行政组织机构,不可以一次全部都加载,而是展开某省时,才加载这个省的下一级结点(也就是地市级)。

难度在于获取不到展开的结点。有人知道如何获得吗?
展开结点是通过点击结点前面的+号来展开的。不存在selectednode。
winform treeview 动态加载 展开结点

------解决方案--------------------
有事件,beforeexpand,展开前触发,在这里读取属于该节点的下级节点,node的tag属性可以保存记录id
------解决方案--------------------
 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);
            }

        }



这是简单的静态 点击添加,我也是新人,希望对你有帮助