Add ContextMenu to treeview nodes in vb.net

 
In this article we will learn that how to add contextmenu or contextmenustrip in treeview nodes at design time as well as runtime using vb.net programming language.

This example requires a windows form with TreeView control named ‘TreeView1’ and two contextmenustrips with name ‘ContextMenuStrip1’ and ‘ContextMenuStrip2’.
you can drag and drop both ContextmenuStrips from the ToolBox at design time (contextmenustrip one is for ContextMenuStrip1 and ContextMenuStrip2).

ContextmenuStrip1′ has two options:
(a) Add Root node ( we can create a new root Node)
(b) ClearAll (We can clear all nodes)

ContextmenuStrip2′ has three options:
(a) Add Child node (We can create a child node)
(b) Rename ( we can rename selected node)
(c) Delete (We can delete selected node)

Add contextmenu to treeview nodes

Now we set ContextMenuStrip1 to treeview1 and ContextMenuStrip2 to treeview1’s nodes like as:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    TreeView1.ContextMenuStrip = ContextMenuStrip1
    For Each RootNode As TreeNode In TreeView1.Nodes
        RootNode.ContextMenuStrip = ContextMenuStrip2
             For Each ChildNode As TreeNode In RootNode.Nodes
                 ChildNode.ContextMenuStrip = ContextMenuStrip2
             Next
   Next
End Sub

Add treeview child node to root node

Add a new windows form named Form1 with one textbox named ‘txtNodeName’. you can enter a node text for creating a new node to TreeView1

Code for adding new root:

Private Sub AddNewRootToolStripMenuItem_Click(ByVal sender As System.Object,  _
                                 ByVal e As System.EventArgs) Handles AddNewRootToolStripMenuItem.Click
     Dim frm As New frmEnterText
     frm.ShowDialog()
     Dim TempNodeText As String = frm.txtNodeName.Text
     frm.Dispose()
     If TempNodeText.Trim <> "" Then
          Dim _Node As New TreeNode
         _Node.Text = TempNodeText
         _Node.ContextMenuStrip = ContextMenuStrip2
         TreeView1.Nodes.Add(_Node)
      End If
End Sub

To Clear All nodes of TreeView1:

Private Sub ClearAllToolStripMenuItem_Click(ByVal sender As System.Object, _
                       ByVal e As System.EventArgs) Handles ClearAllToolStripMenuItem.Click
     TreeView1.Nodes.Clear()
End Sub

To create child node:

Private Sub AddChildRootToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddChildRootToolStripMenuItem.Click
     Dim frm As New frmEnterText
     frm.ShowDialog()
     Dim TempNodeText As String = frm.txtNodeName.Text
     frm.Dispose()
     If TempNodeText.Trim<> "" Then
         Dim _Node As New TreeNode
        _Node.Text = TempNodeText
        _Node.ContextMenuStrip = ContextMenuStrip2
        TreeView1.SelectedNode.Nodes.Add(_Node)
      End If
End Sub

To Rename selected node:

Private Sub RenameToolStripMenuItem_Click(ByVal sender As System.Object,  _
                     ByVal e As System.EventArgs) Handles RenameToolStripMenuItem.Click
     Dim frm As New frmEnterText
     frm.ShowDialog()
     Dim TempNodeText As String = frm.txtNodeName.Text
     frm.Dispose()
     Dim SelectedNode As TreeNode = TreeView1.SelectedNode
     If TempNodeText.Trim <> "" Then
         SelectedNode.Text = TempNodeText
     End If
End Sub

To Delete selected node:

Private Sub DeleteToolStripMenuItem_Click(ByVal sender As System.Object, _
                ByVal e As System.EventArgs) Handles DeleteToolStripMenuItem.Click
       TreeView1.SelectedNode.Remove()
End Sub

One thought on “Add ContextMenu to treeview nodes in vb.net”

Comments are closed.