我如何处理来自在代码中创建的 winforms 控件而不是拖放设计器中的事件?

问题描述 投票:0回答:2

正如您所看到的,当我的应用程序启动时,我正在从名为“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。

vb.net winforms syncfusion
2个回答
1
投票

微软告诉:

' Associate an event handler with an event.
AddHandler Obj.Ev_Event, AddressOf EventHandler

给你:

AddHandler TreeStruct.Click AddressOf trHome_Click

-1
投票

需求是对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
© www.soinside.com 2019 - 2024. All rights reserved.