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
之后使用通配符
您可以使用 TreeNode
的 Tag
属性 来存储有关节点的附加信息。 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
有没有办法向 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
您可以使用 TreeNode
的 Tag
属性 来存储有关节点的附加信息。 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