以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]BeforeSelChange的一个bug  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=38270)

--  作者:jspta
--  发布时间:2013/7/24 15:12:00
--  [讨论]BeforeSelChange的一个bug

当事件被触发了,如果存在以下代码,则会出现退出情况

    If e.Table.Current IsNot Nothing Then


    End If

 

当表进行了筛选,且没有数据(没有行)时,再添加行,则foxtable直接退出。

 

这是什么原因?


--  作者:Bin
--  发布时间:2013/7/24 15:14:00
--  
上个例子看看
--  作者:jspta
--  发布时间:2013/7/24 15:35:00
--  
以下是引用Bin在2013-7-24 15:14:00的发言:
上个例子看看

随便新建一个表,在表事件加入上面2行代码,然后筛选表为空行,然后添加行,foxtable就退出了。

没有其他代码。


--  作者:Bin
--  发布时间:2013/7/24 15:39:00
--  
并未发现有任何问题啊.
--  作者:lsy
--  发布时间:2013/7/24 15:45:00
--  
诚如楼主所言,楼主所言极是。
--  作者:Bin
--  发布时间:2013/7/24 15:49:00
--  
刚才放到CurrentChanged事件去了,这个有可能是BUG

不过你为何要这样做呢?

--  作者:blackzhu
--  发布时间:2013/7/24 15:53:00
--  
If e.Table.Current Is Nothing Then \'如果Current为Nothing
    Return \'则返回
End
If


  先执行一下判断,没有行返回.
[此贴子已经被作者于2013-7-24 15:55:07编辑过]

--  作者:Bin
--  发布时间:2013/7/24 15:54:00
--  
你这样做没有任意意义吧,直接不要用e.Table.Current就不会报错了.

不是有
OldRange:CellRange类型,表示操作前选定的区域
NewRange: CellRange类型,表示操作后选定的区域

这两个E参数可以判断吗?

--  作者:jspta
--  发布时间:2013/7/24 17:33:00
--  
以下是引用Bin在2013-7-24 15:54:00的发言:
你这样做没有任意意义吧,直接不要用e.Table.Current就不会报错了.

不是有
OldRange:CellRange类型,表示操作前选定的区域
NewRange: CellRange类型,表示操作后选定的区域

这两个E参数可以判断吗?

我当时是这么设定的:该表有模拟关联表

当关联表有修改的时候则取消该表选择行,执行e.cancel = True

 

不知道有没有其他事件可以解决这个问题?