.net - .NET 中 TreeView 的延迟加载

标签 .net treeview

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

我一定是遗漏了什么,因为我不敢相信这有那么难。

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

几年前,当我使用 PowerBuilder 时,您会将 HasChildren(或类似的)属性设置为 true 以本质上对控件“撒谎”并强制它显示 +,然后您就可以捕获 Expanding 事件。当没有子节点时,我无法弄清楚如何强制 + 出现在节点上。

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

我在谷歌上搜索了 c#、treeview、delay、deferred、load、force、expand 的各种组合,还有一些其他的术语,现在我没有运气。

附言我在 SourceForge 上找到了 TreeViewAdv 项目,但如果可以避免的话,我宁愿不将新组件引入我们的环境。

最佳答案

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

关于.net - .NET 中 TreeView 的延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/799949/

相关文章:

asp.net - 如何在asp.net中真正注销

Java Spring LDAP 导航到树中

python - tkinter:如何序列化 TreeView ?

c# - ConfigureAwait(false) 导致错误而不是死锁的情况

c# - 将 Spring.NET 与 NHibernate 3 一起使用

c# - 如何通过 Threads c# 将节点添加到 TreeView 中?

json - Kendo UI Treeview 和 JSON

Delphi: TreeView 的自定义提示

.net - 是否有人对WPF在64位操作系统上的性能有任何统计或想法?

c# - 搜索失败应该返回什么结果?