C# winform开发中,如果treeview的节点太多,导致加载很慢,怎么做可以提给效率?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform开发中,如果treeview的节点太多,导致加载很慢,怎么做可以提给效率?相关的知识,希望对你有一定的参考价值。

treeview菜单加载慢的原因有很多。如果确定是节点多引起的问题,可以考虑上面所说的先加载一部分数据。节点如果太多,可以考虑换一个UI设计。如果不确定是节点多引起的问题,那么就要考虑数据库操作,数据库设计和实现代码方面的问题了。这一点在生成无限树(区分目录和节点)时,也很重要。我认为因为节点太多导致速度慢的可能性还是相对小一些的。毕竟既然用treeview,就说明不可能是几百上千的节点(节点太多,用户操作的确是个很大的问题)。如果有这么多,就应该考虑修改UI了。 参考技术A 既然用.NET开发程序,那么教你一招:延迟加载就是用到的时候,再去加载需要的东西那么就可以这样做1.加载第一级的TreeNode节点2.当用户想展开某一TreeNode的时候,如果此节点的子节点没有加载,那么请如同第1条,加载此节点的子节点. 这样就不会因为级数多,导致加载很慢, 其实任何语言都适用,数据量大的时候,最好的选择就是延迟加载 参考技术B 你可以选择分配加载,即先加载父节点类型的数据,然后点击展开按钮的时候再加载子节点的数据。 参考技术C 开始只加载一级节点,当点击某一节点时再加载对应的二级节点,以此类推加载其他级别节点。

C# winform 中展开Treeview节点的问题。。。有分

怎么控制加载进去让TreeView的节点默认展开到第三级,其他的全部+,不展开,求源码,高手详解。。。
发我邮箱381855568@qq.com

public void treeTool(TreeViewItem item,int grade)

if (grade < 2 && item.Items.Count > 0)

for (int i = 0; i < item.Items.Count; i++)

TreeViewItem nowItem = item.Items[i] as TreeViewItem;
nowItem.IsExpanded = true;
treeTool(nowItem, grade++);



else if (grade > 2 && item.Items.Count>0)

for (int i = 0; i < item.Items.Count; i++)

TreeViewItem nowItem = item.Items[i] as TreeViewItem;
nowItem.IsExpanded = false;
treeTool(nowItem, grade++);






没 winform 不知道 正确性怎么样
大概就这么个意思 用递归的
具体样式什么的 自己改下
参考技术A c#好长时间 没碰了,循环2次到2级节点,将其属性改一下就可以了 参考技术B 我晕你。 有个一方法来定指 展开还是收缩。 参考技术C 都搞忘了

以上是关于C# winform开发中,如果treeview的节点太多,导致加载很慢,怎么做可以提给效率?的主要内容,如果未能解决你的问题,请参考以下文章

c# winform 为啥 我用treeview做得导航界面,顺序不对,望高手支招。

c#、winform、treeview 部分节点加图片

C# winform treeview

C# winform treeview 节点展开状态的图标设置

在 C# winforms 应用程序中使用文本框过滤 Treeview

C#如何在treeview控件winform的所有父子节点中搜索文本