在.NET中延迟加载TreeView

Cra*_* W. 8 .net treeview

这是一个System.Windows.Forms.TreeView,而不是WPF或Web TreeView.

我必须遗漏一些东西,因为我无法相信这是那么困难.

我的表单上有一个TreeView.加载所有数据以填充TreeView非常慢,因此我只想加载顶级节点,然后在用户展开节点时填充子节点.问题是,如果节点没有任何子节点,它不会在节点旁边显示+号,这意味着它无法展开,这意味着我无法捕获扩展事件来加载子节点.

多年前,当我使用PowerBuilder时,你会将一个HasChildren(或类似)属性设置为true,基本上"谎言"到控件并强制它显示+,然后你可以捕获Expanding事件.当没有子节点时,我无法弄清楚如何强制+出现在节点上.

我尝试过一种方法,我在每个节点上添加一个虚拟节点,然后在扩展检查虚拟节点是否存在并删除它然后加载子节点,但由于各种原因不值得进入这里解决方案不是在我的情况下可行.

我用Google搜索了c#,treeview,延迟,延迟,加载,强制,扩展以及其他一些现在没有运气的条款.

PS我在SourceForge上找到了TreeViewAdv项目,但如果可以避免,我宁愿不在我们的环境中引入新组件.

CSh*_*per 4

在启动时加载前 2 个级别,并在节点展开时向下加载 2 个级别。