VB.Net TreeView 辅助标识符

VB.Net TreeView secondary identifier

有没有办法向 TreeView 节点添加辅助标识符?目前我在键值中使用 "CategoryID=" 和 "RecipeID=" 来区分类别节点和配方节点,使用 Node.Name.ToString.Split("=")(0) = "RecipeID""CategoryID" 来确定上下文菜单和功能节点有。例如 "RecipeID=" 键获取上下文菜单 A,"CategoryID=" 键获取上下文菜单 B

tvwMain.Nodes.Add("CategoryID=" + row.Item("pkCategoryID").ToString, row.Item("CategoryName").ToString)

tvwMain.Nodes.Add("RecipeID=" + row.Item("pkRecipeID").ToString, row.Item("RecipeName").ToString)

pkCategoryID 和 pkRecipeID 都是数据库中的私钥,确保密钥是唯一的。

但是,我还需要另一个修饰符来确定功能,即 true 和 false 值。我尝试将它添加到密钥的末尾,这样我就可以检查它的值 If Node.Name.ToString.Split("=")(2) = "true" 但是在使用 tvwMain.Nodes.Find("CategoryID=" + row.Item("CategoryID").ToString, True) 时我不能在 row.Item("CategoryID").ToString

之后使用通配符

您可以使用 TreeNodeTag 属性 来存储有关节点的附加信息。 Tag 可以存储一个类型,或者一个对象。在这个例子中只有一个 Form 和一个 Treeview:

Public Class Form1

    Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown

        With Me.TreeView1
            With .Nodes.Add("1", "Root")
                .Nodes.Add("2", "Foo").Tag = True
                .Nodes.Add("3", "Bar").Tag = False
                .Nodes.Add("4", "Baz").Tag = True
                .Nodes.Add("5", "Wup").Tag = New List(Of String) From {"x", "y", "z"}
            End With
        End With

    End Sub

    Private Sub TreeView1_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TreeView1.AfterSelect
        If TypeName(e.Node.Tag) = "Boolean" Then
            MessageBox.Show("It is " & Convert.ToString(e.Node.Tag))
        End If
    End Sub

End Class