以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]为什么删除行后会报出错误呢  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59116)

--  作者:chnfo
--  发布时间:2014/10/29 21:38:00
--  [求助]为什么删除行后会报出错误呢
有一个表A,一个窗口,窗口中的目录树是根据表A来形成的。
目的:
当表中的Code,Title变化的时候,窗口中的目录树自动变化。
当删除行时,窗口中的目录树自动变化。
当切换表中的行时,对应到窗口中的对应树节点。
切换树节点时,对应到表中的行。

问题出现了:
1,当表中的行一次全部删除时,没有任何错误。
2,当表中的行一行行依次删除时,报出错误,提示什么索引 * 不是为负数,就是大于行数。

这个问题一直重现,以前好象没这样的错误啊。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:删除行时报错.rar


--  作者:有点甜
--  发布时间:2014/10/29 21:42:00
--  
 你用的是什么版本?我一行一行,或者连续多行删除,都没有报错。
--  作者:chnfo
--  发布时间:2014/10/29 21:46:00
--  
应当是10-23之前的版本,确切地说是10-20版。
[此贴子已经被作者于2014-10-29 21:47:46编辑过]

--  作者:有点甜
--  发布时间:2014/10/29 21:52:00
--  
 我用的就是10.20版,你怎么测试会报错?
--  作者:chnfo
--  发布时间:2014/10/29 22:08:00
--  
我也不知道是怎么回事啊
--  作者:有点甜
--  发布时间:2014/10/29 22:12:00
--  

 怎样测试一定报错?我删除表数据没报错。


--  作者:chnfo
--  发布时间:2014/10/29 22:28:00
--  
就象现在这个。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:删除行时报错.rar

打开窗口,然后删除表中的第四行,就报错了。

---你别告诉我,窗口没打开哈
----不打开窗口 ,直接删除表的行数据,是不会报错滴。打开窗口,再删除第四行就出错了。应当就是currentchange那里有问题,但我就是没搞明白为什么会出错。
[此贴子已经被作者于2014-10-29 22:33:20编辑过]

--  作者:有点甜
--  发布时间:2014/10/29 22:36:00
--  

 CurrentChanged 代码

 

If e.Table.Current IsNot Nothing Then  \'一定要判断是不是空表
    If Forms("窗口1").Opened Then
        systemready = False
        Dim TV As WinForm.TreeView = Forms("窗口1").Controls("TreeView1")
        If TV IsNot Nothing Then
            For Each node As WinForm.TreeNode In TV.AllNodes
                If  node.FullName.replace("\\",".") = e.Table.Current("Code")
                    TV.SelectedNode = node
                End If
            Next
        End If
        systemready = True
    End If
End If


--  作者:chnfo
--  发布时间:2014/10/29 22:44:00
--  
      systemready = False
**********
      systemready = true

----为什么要这样呢?

--  作者:有点甜
--  发布时间:2014/10/29 22:47:00
--  
 不要触发目录树的对应事件