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)
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 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
Nice tutorial, Thanks!