Dim CurrentNode As Long Dim isNode As Boolean Private Sub Form_Load() TreeView1.Nodes.Add , , "a", "a" TreeView1.Nodes.Add "a", tvwChild, , "b" End SubPrivate Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) If Button = 2 And isNode Then TreeView1.Nodes.Add CurrentNode, tvwChild, , "temp" End If isNode = False me.popupmenu menuame,flags End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) CurrentNode = Node.Index isNode = True End Sub
Dim isNode As Boolean
Private Sub Form_Load()
TreeView1.Nodes.Add , , "a", "a"
TreeView1.Nodes.Add "a", tvwChild, , "b"
End SubPrivate Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 2 And isNode Then
TreeView1.Nodes.Add CurrentNode, tvwChild, , "temp"
End If
isNode = False
me.popupmenu menuame,flags
End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
CurrentNode = Node.Index
isNode = True
End Sub
判断单击的节点的键直或名字也可以吧。
符合什么条件的又叫做子节点?你需要的功能大致实现方法如下:
利用MOUSEUP事件的X,Y参数,再利用TREEVIEW的HITTEST方法判断鼠标
在哪个NODE上。然后判断该NODE是否为子节点(例如,如果你定义自身
没有子节点的节点就叫做“子节点”,那么可以用NODE的CHILDREN属性
来判断),如果是,则弹出菜单;否则退出。