Foxtable(狐表)用户栏目专家坐堂 → [讨论]BeforeSelChange的一个bug


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

主题:[讨论]BeforeSelChange的一个bug

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
[讨论]BeforeSelChange的一个bug  发帖心情 Post By:2013/7/24 15:12:00 [只看该作者]

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

    If e.Table.Current IsNot Nothing Then


    End If

 

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

 

这是什么原因?


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/24 15:14:00 [只看该作者]

上个例子看看

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/7/24 15:35:00 [只看该作者]

以下是引用Bin在2013-7-24 15:14:00的发言:
上个例子看看

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

没有其他代码。


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/24 15:39:00 [只看该作者]

并未发现有任何问题啊.

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/7/24 15:45:00 [只看该作者]

诚如楼主所言,楼主所言极是。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/24 15:49:00 [只看该作者]

刚才放到CurrentChanged事件去了,这个有可能是BUG

不过你为何要这样做呢?

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/24 15:54:00 [只看该作者]

你这样做没有任意意义吧,直接不要用e.Table.Current就不会报错了.

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

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

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/7/24 17:33:00 [只看该作者]

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

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

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

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

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

 

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


 回到顶部