Foxtable(狐表)用户栏目专家坐堂 → 有如下一个小项目 本人做了一部分 余下的解决不了 麻烦狐狸帮助一下


  共有3774人关注过本帖树形打印复制链接

主题:有如下一个小项目 本人做了一部分 余下的解决不了 麻烦狐狸帮助一下

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/9/1 7:47:00 [显示全部帖子]

保持原来的路径不变的基础上重写:

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.table


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/9/1 9:33:00 [显示全部帖子]

重复问题,可以自己用这个排查一下:

http://www.foxtable.com/help/topics/1485.htm

 

不要太被动,就增加根和增加子两个按钮,跟踪一下index这个变量的值就知道原因了


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/9/1 9:40:00 [显示全部帖子]

增加子原来的代码是:

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
If trv.SelectedNode IsNot Nothing Then
    Dim pd As WinForm.TreeNode = trv.SelectedNode
    Dim Index As Integer = 1
    If pd.Nodes.count > 1 Then
        Index = cint(pd.Nodes(pd.nodes.count - 1).name) + 1
    End If
    Dim nd As WinForm.TreeNode = pd.Nodes.Add(index,"新节点")
    trv.SelectedNode = nd
    trv.Select
    trv.BeginEdit
End If

 

代码改为:

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
If trv.SelectedNode IsNot Nothing Then
    Dim pd As WinForm.TreeNode = trv.SelectedNode
    Dim Index As Integer = 1
    If pd.Nodes.count >1 Then
        Index = cint(pd.Nodes(pd.nodes.count - 1).name) + 1
    End If
    messagebox.show(Index)
    Dim nd As WinForm.TreeNode = pd.Nodes.Add(index,"新节点")
    trv.SelectedNode = nd
    trv.Select
    trv.BeginEdit
End If

 

发现增加头两个节点,index都是1,第三次才开始变为2,说明第二次增加的时候下面的代码没有执行:

    If pd.Nodes.count >1 Then
        Index = cint(pd.Nodes(pd.nodes.count - 1).name) + 1
    End If

原因很清楚,第一次执行的时候pd.Nodes.count为0,第二次执行的时候pd.Nodes.count为1,不满足上面的条件判断语句。

 

所以只需将代码改为:

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
If trv.SelectedNode IsNot Nothing Then
    Dim pd As WinForm.TreeNode = trv.SelectedNode
    Dim Index As Integer = 1
    If pd.Nodes.count >= 1 Then
        Index = cint(pd.Nodes(pd.nodes.count - 1).name) + 1
    End If
    Dim nd As WinForm.TreeNode = pd.Nodes.Add(index,"新节点")
    trv.SelectedNode = nd
    trv.Select
    trv.BeginEdit
End If

 

就加一个等于号,一切就正常的了,同样增加根有类似的问题,一样加个等于号:

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim Index As Integer = 1
If trv.Nodes.count >= 1 Then
    Index = cint(trv.Nodes(trv.nodes.count - 1).name) + 1
End If
Dim nd As WinForm.TreeNode = trv.Nodes.Add(index,"新节点")
trv.SelectedNode = nd
trv.Select
trv.BeginEdit


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/9/1 9:41:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.table


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/9/1 9:50:00 [显示全部帖子]

12楼和13楼的帖子,你没有看吗?

 回到顶部