先作菜单,然后visible=false
在node_click事件里加
PopupMenu YourMenuName菜单事件里:
    If txtUserName = "" Then
        MsgBox "请输入用户名称", vbInformation, "用户修改"
        Exit Sub
    End If
    '数据验证
    Dim strSql As String
    
    strSql = "sp_User "
    
    strSql = strSql & "@n_UserID=" & txtID & ","
    strSql = strSql & "@s_UserID='" & Trim(txtLoginName) & "',"
    strSql = strSql & "@s_Password='" & Trim(txtPassWord) & "',"
    strSql = strSql & "@s_Name='" & Trim(txtUserName) & "',"
    strSql = strSql & "@s_Dept='" & Trim(cmbDept.List(cmbDept.ListIndex)) & "',"
    strSql = strSql & "@s_UserMark='" & Trim(cmbUserMark.List(cmbUserMark.ListIndex)) & "',"
    strSql = strSql & "@s_Tel='" & Trim(txtTel) & "',"
    strSql = strSql & "@s_Email='" & Trim(txtMail) & "',"
    strSql = strSql & "@s_Note='" & Trim(txtnote) & "',"
    strSql = strSql & "@s_Editor='" & UserInfo(2) & "'"    On Error Resume Next
        cn.Execute strSql
    If Err.Number <> 0 Then
        MsgBox Err.Description, vbInformation, "错误"
        Exit Sub
    End If
    MsgBox "已经保存此用户", vbInformation, "用户修改"
'sp_user 为一存储过程,用来保存修改

解决方案 »

  1.   

    在鼠标的click事件中,先判断是否是右健和选中部门的节点,然后再调用popupmenu就可以了!如:
    dim mdownRight as boolean
    Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
        If mdownRight = True Then
            PopupMenu mnuEdit1'mnuEdit1为右健菜单的名字
        End If
    End Sub
    Private Sub TreeView1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
         '判断鼠标右键按下
         If Button = vbRightButton Then
            mdownRight = True
         End If
    End Sub