TreeView1.Nodes.Add(, , "AdminNode", "管理员")
的第三个参数"AdminNode"有重复。

解决方案 »

  1.   

    表示你以前添加的节点中已存在键名为"AdminNode"的节点了,仔细查查:)
      

  2.   

    我已经检查很多边了,AdminNode 是没有重复的!!!
      

  3.   

    Private Sub MDIForm_Activate()
    Dim SysNode As NodeSelect Case UserType '选择用户类型,进行不同的界面操作    Case "member" '用户为会员时
        
            'TreeView处理
            Set SysNode = TreeView1.Nodes.Add(, , "MemberNode", "会员功能")
            SysNode.Expanded = True
            Set SysNode = TreeView1.Nodes.Add("MemberNode", tvwChild, "OView", "定单查询")
            Set SysNode = TreeView1.Nodes.Add("MemberNode", tvwChild, "PView", "商品查询")
            Set SysNode = TreeView1.Nodes.Add("MemberNode", tvwChild, "SelfInfo", "个人信息")
            
            '菜单操作
            mnuSp3.Visible = False
            mnuCAdmin.Visible = False
            mnuSAdmin.Visible = False
            mnuOAdmin.Visible = False
            mnuPAdmin.Visible = False
            mnuCView.Visible = False
            mnuSell.Visible = False
            
        Case "seller" '用户为销售员时
        
            'TreeView处理
            Set SysNode = TreeView1.Nodes.Add(, , "SellerNode", "销售员功能")
            SysNode.Expanded = True
            Set SysNode = TreeView1.Nodes.Add("SellerNode", tvwChild, "OView", "定单查询")
            Set SysNode = TreeView1.Nodes.Add("SellerNode", tvwChild, "PView", "商品查询")
            Set SysNode = TreeView1.Nodes.Add("SellerNode", tvwChild, "CView", "客户查询")
            Set SysNode = TreeView1.Nodes.Add("SellerNode", tvwChild, "Sell", "销售系统")
            
            '菜单操作
            mnuSp3.Visible = False
            mnuCAdmin.Visible = False
            mnuSAdmin.Visible = False
            mnuOAdmin.Visible = False
            mnuPAdmin.Visible = False
            mnuSelfInfo.Visible = False
        
        Case "admin" '用户为管理员时
        
            'TreeView处理
            Set SysNode = TreeView1.Nodes.Add(, , "AdminNode", "管理员")
            SysNode.Expanded = True
            Set SysNode = TreeView1.Nodes.Add("AdminNode", tvwChild, "OAdmin", "定单管理")
            Set SysNode = TreeView1.Nodes.Add("AdminNode", tvwChild, "PAdmin", "商品管理")
            Set SysNode = TreeView1.Nodes.Add("AdminNode", tvwChild, "CAdmin", "客户管理")
            Set SysNode = TreeView1.Nodes.Add("AdminNode", tvwChild, "SAdmin", "销售员管理")
            Set SysNode = TreeView1.Nodes.Add("AdminNode", tvwChild, "SysAdmin", "系统管理")        '菜单操作
            mnuSp3.Visible = False
            mnuOView.Visible = False
            mnuPView.Visible = False
            mnuCView.Visible = False
            mnuSelfInfo.Visible = False
            mnuSell.Visible = False
            mnuSp4.Visible = False
            
    End Select
    End Sub上面是我的完整代码,我是想根据不同的用户类型,生成不同的TreeView。大家看一下哪里有错误导致出现上面的错误。
      

  4.   

    在最前面加上
    TreeView1.Nodes.Clear我看你的程序是每次窗体激活的时候更改TreeView的内容,但更改之前没有将它原来的内容清空,所以第二次窗体激活时,你需要添加的那些节点在TreeView中可能已经存在了,而出现关键字不唯一的情况。
    你也可以先判断是否需要更新TreeView,如果不要,就跳过上面那段代码,如果要,再清除TreeView的所有节点重新添加。