【问题标题】:Load on demand for an Active x treeview control that is slow to load (MS access)按需加载加载缓慢的 Active x 树视图控件(MS 访问)
【发布时间】:2016-02-22 21:40:20
【问题描述】:

我最近询问了this Question,基于加载缓慢的活动 x 树视图控件。上一个问题的 cmets 建议我添加“按需加载”。

treeview控件有4层节点,通过测试发现只有第4层有问题。

我无法弄清楚如何正确编码这种“按需加载”。我想要发生的是,前三个级别在打开时加载,然后当用户单击第三个级别时,第四级加载该适当节点。

这是为了加快加载时间我应该采取的正确方法吗?

我认为我需要添加一个node_click() 事件才能加载第四级。如何仅为添加子节点的第三级添加节点点击事件?

这是我的第三级:

strSQL1 = "Select * From Prt_Section ORDER BY Section_Number"
Set myRSChild1 = MyDB.OpenRecordset(strSQL1, dbOpenSnapshot)
Do While Not myRSChild1.EOF
   Set nodx = Treeview1.Nodes.Add("A" & CStr(myRSChild1![PartCatID]), tvwChild, "B" & CStr(myRSChild1![SectionID]), _
              " " & Format$(myRSChild1![Section_Number], "00") & " - " & _
              myRSChild1![Section_Description])
   myRSChild1.MoveNext
 Loop

【问题讨论】:

    标签: ms-access vba treeview


    【解决方案1】:

    这是为了加快加载时间我应该采取的正确方法吗?

    您将花费更少的时间来填充 TreeView,并且可能会使用返回更少行或不太复杂的查询,所以可能。


    为此,您需要识别最初未填充的节点 - 最简单的方法是给它一个固定的 .Key.Tag - 然后当单击具有匹配值的节点时,如果它尚未填充,填充它:

    Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
        If Node.Key = "FOO" And Node.Children = 0 Then
    
            '//get data
            TreeView1.Nodes.Add Node.Key, tvwChild, , Rnd
            TreeView1.Nodes.Add Node.Key, tvwChild, , Rnd
            TreeView1.Nodes.Add Node.Key, tvwChild, , Rnd
        End If
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多