Microsoft & .NETVisual BasicVB Coding Tip: Treeview - Label Editing

VB Coding Tip: Treeview – Label Editing

Developer.com content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

After the success of the last three parts of the Treeview series when I found this code on Microsoft’s web site, I thought it would be good to share it with you.

This code allows you to simulate the label editing in Explorer. If the user leaves it blank then a message box with tell you and you will have to enter a value. If you press Esc then it will restore the previous value.

Option Explicit
Dim sNodeText As String  ' to hold the node text
Private Sub Form_Load()
    'Add some nodes to the TreeView
    TreeView1.Nodes.Add , , , "test"
    TreeView1.Nodes.Add , , , "test 1"
    TreeView1.Nodes.Add , , , "test 2"
End Sub
Private Sub Timer1_Timer()
    ' Put the TreeView in edit mode
    TreeView1.StartLabelEdit
    Timer1.Enabled = False
End Sub
Private Sub TreeView1_AfterLabelEdit( _
         Cancel As Integer, _
         NewString As String)
 ' Make sure that we have a value in the Label
 If Len(NewString) < 1 Then
   ' The Label is empty
   MsgBox "Error! You must enter a value"
   ' enable the Timer to get us back
   '   to edit mode
   Timer1.Interval = 100
   Timer1.Enabled = True
 End If
End Sub
Private Sub TreeView1_BeforeLabelEdit( _
        Cancel As Integer)
 ' If the label is not empty store the string
 If Len(TreeView1.SelectedItem.Text) > 0 Then
   sNodeText = TreeView1.SelectedItem.Text
 End If
End Sub
Private Sub TreeView1_KeyUp(KeyCode As Integer, _
                            Shift As Integer)
 ' If the user hits the Esc key then restore 
 '   the old label
 If KeyCode = vbKeyEscape Then
   TreeView1.SelectedItem.Text = sNodeText
 End If
End Sub

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Latest Posts

Related Stories