February 28, 2021
Hot Topics:

VB Coding Tip: Treeview - Label Editing

  • By Sam Huggill
  • Send Email »
  • More Articles »

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
    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

This article was originally published on November 19, 2002

Enterprise Development Update

Don't miss an article. Subscribe to our newsletter below.

Thanks for your registration, follow us on our social networks to keep up-to-date