正如您所看到的,当我的应用程序启动时,我正在从名为“trHome”的同步融合创建一个树视图。现在,如果选择了树中的特定节点,我想做一些事情,但我不知道如何处理设计器中不存在的这个控件。
Private Sub Home_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim TreeStruct As TreeViewAdv = New TreeViewAdv()
Dim font As Font = New Font("Microsoft Sans Serif", Single.Parse("12"))
TreeStruct.Name = "trHome"
TreeStruct.Font = font
gb.Client = TreeStruct
End Sub
Private Sub trHome_Click(sender As Object, e As EventArgs) Handles trHome.Click
End Sub
我希望当我单击树控件中的节点时,我的代码将执行子 trHome_Click。
微软告诉:
' Associate an event handler with an event.
AddHandler Obj.Ev_Event, AddressOf EventHandler
给你:
AddHandler TreeStruct.Click AddressOf trHome_Click
需求是对TreeViewAdv中特定选定的节点执行一些操作。这可以通过利用事件来实现。 初始化控件后,可以挂钩事件。 AfterSelect 事件适合这种场景。在这种情况下,可以对特定选定的节点执行必要的操作。
请查找以下随附的代码片段以供参考。
Public Sub New()
treeViewAdv1 = New TreeViewAdv()
treeViewAdv1.Name = "treeView1"
treeViewAdv1.ItemHeight = 20
Dim treeNode1 As New TreeNodeAdv("Node1")
Dim treeNode2 As New TreeNodeAdv("Node0", New TreeNodeAdv() { treeNode1})
Dim treeNode3 As New TreeNodeAdv("Node3")
Dim treeNode4 As New TreeNodeAdv("Node2", New TreeNodeAdv() { treeNode3})
Dim treeNode5 As New TreeNodeAdv("Node5")
Dim treeNode6 As New TreeNodeAdv("Node4", New TreeNodeAdv() { treeNode5})
treeNode1.Name = "Node1"
treeNode1.Text = "Child1"
treeNode2.Name = "Node0"
treeNode2.Text = "Parent"
treeNode3.Name = "Node3"
treeNode3.Text = "Child1"
treeNode4.Name = "Node2"
treeNode4.Text = "Parent1"
treeNode5.Name = "Node5"
treeNode5.Text = "Child1"
treeNode6.Name = "Node4"
treeNode6.Text = "Parent2"
'Add the nodes in TreeViewAdv nodes collection
treeViewAdv1.Nodes.AddRange(New TreeNodeAdv() { treeNode2, treeNode4, treeNode6})
treeViewAdv1.Size = New System.Drawing.Size(377, 250)
' Add the TreeViewAdv to the Form controls
Me.Controls.Add(treeViewAdv1)
AddHandler treeViewAdv1.AfterSelect, AddressOf TreeViewAdv1_AfterSelect
End Sub
Private Sub TreeViewAdv1_AfterSelect(ByVal sender As Object, ByVal e As EventArgs)
If treeViewAdv1.SelectedNode.Text = "Parent1" Then
treeViewAdv1.SelectedNode.Font = New Font("Microsoft Sans Serif", Single.Parse("22"))
End If
End Sub