使用VB6将缺少的节点从Treeview1添加到Treeview2

用户名

我想扫描并匹配treeview2中treeview1的项目,并将子项添加到treeview2。

这是我当前的代码:

    Dim FoundIt As Boolean, ii As Integer, ix As Integer
Dim NodX As Node, NodX2 As Node, namme As String
On Error Resume Next

For Each NodX In TreeView1.Nodes
ii = NodX.Index
For Each NodX2 In TreeView2.Nodes
ix = NodX.Index
On Error Resume Next
If NodX.FullPath = NodX2.FullPath Then
If TreeView1.Nodes(ii).Parent.Text = TreeView2.Nodes(ix).Parent.Text Then
If TreeView1.Nodes(ii).Parent.Image = 9 And TreeView1.Nodes(ii).Image = 3 Then
namme = TreeView2.Nodes(ix).Parent.Key
TreeView2.Nodes.Add namme, tvwChild, TreeView1.Nodes(ii).Parent.Child.Text, TreeView1.Nodes(ii).Parent.Child.Text, 5
Pause 0
End If
End If
End If
'Exit For
Next
Next
next

目前,treeview1项目可能具有9的父图像和3的子图像,因此基于这一点,我想将具有图像索引3的所有项目添加到treeview2的每个父图像节中。

在此处输入图片说明

艾蒂安·兰维尔(Etienne Laneville)

这是应该使您更接近所需内容的代码:

Dim objNode1 As Node
Dim objNode2 As Node
Dim objMatchNode As Node
Dim objChildNode1 As Node
Dim objChildNode2 As Node
Dim iCounter1 As Integer
Dim iCounter2 As Integer
Dim fFound As Boolean

On Error Resume Next

For Each objNode1 In TreeView1.Nodes

    ' Find matching node in Treeview2
    For Each objNode2 In TreeView2.Nodes
        If objNode2.Text = objNode1.Text Then
            ' Match found
            Set objMatchNode = objNode2
            Exit For
        End If
    Next

    If Not objMatchNode Is Nothing Then

        ' Check all children
        If objNode1.Children > 0 Then

            ' Get first Child
            Set objChildNode1 = objNode1.Child

            ' Loop through all children
            For iCounter1 = 1 To objNode1.Children

                If objChildNode1.Image = 3 And objNode1.Image = 9 Then

                    ' Check if it already exists in Treeview2
                    If objMatchNode.Children > 0 Then

                        ' Get first Child
                        Set objChildNode2 = objMatchNode.Child

                        ' Set Found flag to False
                        fFound = False

                        ' Loop through all children
                        For iCounter2 = 1 To objMatchNode.Children

                            ' Check for match
                            If objChildNode2.Text = objChildNode1.Text Then
                                fFound = True
                                Exit For
                            End If

                            ' Get next node
                            Set objChildNode2 = objChildNode2.Next

                        Next

                        If Not fFound Then
                            ' Add to Treeview2
                            TreeView2.Nodes.Add objMatchNode.Key, tvwChild, objChildNode1.Key, objChildNode1.Text, 3
                        End If

                    End If

                End If

                ' Get next node
                Set objChildNode1 = objChildNode1.Next

            Next

        End If

    End If

    ' Give UI some time to do other things
    DoEvents

Next

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将数据添加到QML TreeView

在For / ForEach循环中将节点添加到TreeView

如何将值添加到TreeView?

如何将SelectedNodeChanged事件添加到Winform TreeView?

如何将工具提示添加到Telerik Treeview

如何将TreeView添加到AvalonDock?

将值添加到 treeview Tkinter 中的特定列

将双击命令添加到 wpf-treeview-items

Excel VBA-使用代码将ActiveX TreeView控件添加到工作表

Javafx使用Thread将子项动态添加到Treeview吗?

Kendo TreeView-仅将删除图像图标添加到没有子级的父节点

我无法理解如何在treeView1中标识节点是文件还是目录?

VB6 Treeview图像循环更改图像

将上下文菜单添加到TreeView WPF中的叶节点

如何在VB6中将事件处理程序添加到索引控件中?

在MS Access 2010中使用VBA将第三级添加到Treeview Active X控件

如何将treeView1 selectednodes集合转换为List <string>?

WPF:将具有不同类型项的多个级别添加到TreeView

将动作项添加到Eclipse插件的Treeview工具栏

将新对象添加到集合时,更新角度treeview指令

将样式添加到Treeview表的标题(文本粗体和backgroundcolor)-Tkinter Python

如何在不重复的情况下将treeNode添加到treeView

WPF在添加到集合后立即迭代TreeView

使用Powershell将缺少的逗号添加到CSV

有没有一种方法可以在VB6中将工具提示添加到MDI父窗体?

使用TRANSACT-SQL将节点添加到XML

JavaFX使用SceneBuilder将节点添加到ScrollPane

使用MutationObserver检测何时将节点添加到文档

使用jquery将CSS节点添加到未知页面