以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 索引不为负数就是大于行数的错误? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=43202) |
-- 作者:zpx_2012 -- 发布时间:2013/12/2 11:11:00 -- 索引不为负数就是大于行数的错误? 先在按钮中用 dr.Remove \'移除了某行后表事件CurrentChanged在执行到自动行高这里就出现了索引超出的错误,如下图: Tables("表A").AutoSizeRows() \'自动设置行高 用了有一段时间都是正常的,突然出现这个,请问是什么原因?谢谢! |
-- 作者:Bin -- 发布时间:2013/12/2 11:18:00 -- 上代码.或者例子. 纸上谈兵帮不上你. |
-- 作者:zpx_2012 -- 发布时间:2013/12/2 14:45:00 -- 代码这是这样currentchanged事件: Dim t As Table = e.Table If t.Current Is Nothing Then Return Else If t.name = Mtb & "_主表" Then \'如果选中的是主表 Tables(Mtb & "_主表").AutoSizeRows() \'自动设置行高 \'选择不同主表行时筛选子表明细 If Ctb > "" Then If Tables(Mtb & "_主表").rows.count > 0 Then \'如果主表有数据 Dim flt As String = Rcol & " = \'" & Tables(Mtb & "_主表").Current(Rcol) & "\'" Tables(Mtb & "_明细").Filter = flt End If Tables(Mtb & "_明细").AutoSizeRows() \'自动设置行高 End If End If End If 如果在上方的主表只有一行或者多行时选择的是最后一行,然后用菜单上的移除按钮移除所选行后就出现这个问题了。如果有多行选择的不是最后一行则没有问题。 请问要怎么避免?
|
-- 作者:Bin -- 发布时间:2013/12/2 14:49:00 -- 建议您用这个方法: http://www.foxtable.com/help/topics/1485.htm 先找出是哪一行出错,然后分析原因,搞不定上例子.
|
-- 作者:zpx_2012 -- 发布时间:2013/12/2 15:06:00 -- 重做了个简单的例子但又没法重现问题,我想主要就是移除行后还是用那行执行自动行高出错? 就是自动行高这里‘如果注释掉就没有问题;Tables(Mtb & "_主表").AutoSizeRows() \'自动设置行高 同时还出现奇怪的现象,如果把全局表事件drawcell的开关设为false就没问题,设为true即使drawcell事件里没有写任何代码也出现这个问题
|
-- 作者:Bin -- 发布时间:2013/12/2 15:10:00 -- 这么神奇,没办法重现错误的话,这个很难帮到你啊. |
-- 作者:程兴刚 -- 发布时间:2013/12/2 17:17:00 -- 他的代码也没有全部贴出来,只有他自己知道为什么! |
-- 作者:longtechwj -- 发布时间:2013/12/2 17:42:00 -- 你移除后保存一下 |