我自己定义了一个递归函数,用于在树形控件中查找点击的节点所属的企业,参数为code = TreeView1.SelectedItem.Key
,树形控件中的节点如果是企业名称的话我已经给这个节点的KEY加了后缀#EnName作为标志,如总公司的节点KEY为01#EnName,01为公司编号,#EnName为KEY的后缀,但我在树形控件的点击事件中调用时此函数出现提示错误(实时错误'28',堆栈空间溢出),奇怪的是并不是每次点击都出错,当点击的子节点比较深的时候就出错.哪位给看看,谢谢了
Private Sub SelectShangji(code As String) '函数作用:查找点击节点所属的企业
  Dim code2 As String
  Dim i, j As Long
  j = InStr(1, code, "#") '查找#位置
  i = Len(code)
  code2 = Right(code, i - j) '获得点击处的字段列名
        If code2 = "EnName" Then
           code = Left(code, j - 2)
           EnNo2 = code '用于检索属于这个企业的所有数据,包括子公司,点击的就是企业
           Exit Sub
        Else
           SelectShangji (TreeView1.SelectedItem.Parent.Key) '递归调用,此时出现提示错误!
        End If
End Sub

解决方案 »

  1.   

    不管怎么改,只要嵌入的层数太多都不行。可以观察一下到底有多少层了
    dim level as integerPrivate Sub SelectShangji(code As String) '函数作用:查找点击节点所属的企业
      level=level+1
      Dim code2 As String
      Dim i as integer, j As integer
      j = InStr(1, code, "#") '查找#位置
      i = Len(code)
      code2 = Right(code, i - j) '获得点击处的字段列名
      If code2 = "EnName" Then
        code = Left(code, j - 2)
        EnNo2 = code '用于检索属于这个企业的所有数据,包括子公司,点击的就是企业
        Exit Sub
      Else
        call SelectShangji(TreeView1.SelectedItem.Parent.Key) '递归调用,此时出现提示错误!
      End If
    End Sub
      

  2.   

    怪了,怎么有时3层出现错误,但有的到5层才出错?
    TreeView1支持item的範圍?这个在哪设置?
      

  3.   

    我常用的传递方法Private Sub SelectShangji(nod As Node) '函数作用:查找点击节点所属的企业  level=level+1  Dim code2 As String
      Dim i as integer, j As integer
      j = InStr(1, nod.key, "#") '查找#位置
      i = Len(nod.key)
      code2 = Right(nod.key, i - j) '获得点击处的字段列名
      If code2 = "EnName" Then
        code = Left(nod.key, j - 2)
        EnNo2 = nod.key '用于检索属于这个企业的所有数据,包括子公司,点击的就是企业
        Exit Sub
      Else
        if not (nod.parent is Nothing) then
          call SelectShangji(nod.Parent.Key) '递归调用,此时出现提示错误!
        end if
      End If
    End Sub
      

  4.   

    谢谢各位,wydajjj说的很对,是我参数写错了,应该用 cangwu_lee(小橙子) 提供的传递NOD参数的函数,
    但在树形控件的点击事件中怎么获得这个NOD参数?怎么给NOD这个参数赋值?
    我是新手,大家不要笑我啊,呵呵