Vb6 如何避免treeview负节点数问题

Vb6 如何避免treeview负节点数问题,vb6,treeview,Vb6,Treeview,我正在将数据库表数据绑定到treeview。 在文档中提到,节点计数属性是一个整数,有符号2字节。 因此,如果节点超过此范围,节点计数将变为负值。 有什么解决方法吗?是的,这是一个bug。幸运的是,在现实世界中从来没有人遇到过它,因为单个TreeView控件需要显示超过32767个节点是完全没有意义的 正如链接的知识库文章中提到的,最好的解决方法是在TreeView控件中维护较少的节点。考虑在多个树视图之间拆分数据,或者使用一个更适合于如此令人难以置信的大量数据的不同控件。 如果您必须使用Tre

我正在将数据库表数据绑定到treeview。 在文档中提到,节点计数属性是一个整数,有符号2字节。 因此,如果节点超过此范围,节点计数将变为负值。 有什么解决方法吗?

是的,这是一个bug。幸运的是,在现实世界中从来没有人遇到过它,因为单个TreeView控件需要显示超过32767个节点是完全没有意义的

正如链接的知识库文章中提到的,最好的解决方法是在
TreeView
控件中维护较少的节点。考虑在多个树视图之间拆分数据,或者使用一个更适合于如此令人难以置信的大量数据的不同控件。 如果您必须使用
TreeView
,Microsoft建议您记住以下几点:

  • 当您添加越来越多的节点时,性能将变得极其缓慢
  • 不要添加超过65535个节点。(这是本机控件施加的限制,它使用无符号整数存储节点计数。)
  • 使用获取真实的节点计数。或者,您可以使用模块或公共级别变量来跟踪TreeView中有多少节点。每次添加或删除节点时,将变量递增或递减一。如果需要确定节点的计数,这是必需的,因为
    节点
    集合的
    计数
    属性将不会返回正确的值
  • 不要依赖节点对象的
    索引
    属性。例如,
    Index
    属性对于节点32767是32767,但是对于节点32768是-32768
  • 您仍然可以通过使用节点的
    或向
    节点
    集合传递一个数字来引用节点。
    例如:

    TreeView1.Nodes(40000) refers to node 40000.
    
My treeview(Mscomctl中的标准版本)承载了一百万个节点,性能相当不错。不过,指数问题很严重。