How to add a new node to a Sheridan Active TreeView control without popup boxes
This does require Sheridan Controls for the .Level property of the node in the Sheridan TreeView Control. You should be able to replicate this with the standard treeview control, but you will have to come up with a different way to find out which menu to popup for the user. On a very deep tree this becomes quite complex if you are not using the Sheridan Controls. Which is why I am. I am too lazy to go into that much detail. I didn't even do it for the program that uses this. Go ahead and populate the tvw anyway you like and add these three events.
The popAddNewNode_Click() occurs from the right Click event of the node in the tvw. The code is well commented (at least compared to my usual commenting style), so if you have any questions or want a sample program of how this works if you are having problems with this email me: arsch@flash.net
private Sub popAddNewNode_Click()
Dim tParent as string
sstvwCode.SelectedItem.Expanded = false
' get parent node of new node to add
tParent = sstvwCode.SelectedItem.Key
' Add temporary node and let user enter name for it
set tNode = sstvwCode.Nodes.Add(tParent, ssatChild)
' Make sure node is selected so wrong node is not
' removed AfterLabelEdit
tNode.Selected = true
sstvwCode.StartLabelEdit
End Sub
private Sub sstvwCode_AfterLabelEdit _
(Cancel as SSActiveTreeView.SSReturnBoolean, _
NewString as string)
on error GoTo AddNodeError
Dim nParent as string
Dim nText as string
' Only proceed if user typed in new name
If NewString <> "" then
' get the parent of the temp node, because it
' is about to be deleted
nParent = tNode.Parent.Key
nText = NewString
' Remove the temp node that the user just
' typed in
sstvwCode.Nodes.Remove _
sstvwCode.SelectedItem.Index
' Add the new node in same position
' with complete information
set tNode = sstvwCode.Nodes.Add(nParent, _
ssatChild, nText, nText)
' Update the treeview
sstvwCode.Refresh
else
' This is the message box if user does not
' enter a name for item
MsgBox "You must label the new item", 48, _
"new item not saved"
'remove the no-named item
sstvwCode.Nodes.Remove tNode.Index
End If
' Destroy object
set tNode = nothing
Exit Sub
AddNodeError:
Dim iResult%
Select Case Err.Number
' error occurs if name of node already exists
Case "35602":
iResult = MsgBox("An item with that name _
already exists", , _
"Cannot save new item")
' A more complete error handler truly needs to be
' implemented here but this is a Simple demo program,
' There are alot of error that can occur with the treeview.
Case else:
set tNode = nothing
Exit Sub
End Select
set tNode = nothing
End Sub
private Sub sstvwCode_MouseUp(Button as Integer, _
Shift as Integer, x as Single, y as Single)
If Button = vbRightButton then
'use the level property to avoid having error
' message
'if you try to use SelectedItem.Parent.Text(or something
' along those lines)
'it will generate an error that will not resume or
' error trap
If sstvwCode.SelectedItem.Level = 1 Or _
sstvwCode.SelectedItem.Level = 2 then
me.PopupMenu popTest
else
Exit Sub
End If
End If
End Sub
Download zipped Project File (3k)

Comments
Active Treeview
Posted by Legacy on 06/02/2003 12:00amOriginally posted by: Farhana
Dear Sir,
Replycan you tell me from where should i down load this Sheridan Active TreeView(tvw) control.
Regards
Farhana