以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- [求助]关于drawcell事件报错 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=195769)
|
-- 作者:syst
-- 发布时间:2025/3/7 23:42:00
-- [求助]关于drawcell事件报错
老师您好,一个主窗口上打开一个模式窗口,放了几个关联的子表在里面,当在给里面的关联表增加行或者删除行时(用按钮+代码增加行或者删除行),偶尔会报错(不是每次都报),提示的是drawcell事件问题,这个是有可能什么情况呢?drawcell事件只有几行代码:
If e.Row("数量") < 0 Then e.Style = "退货" End If
这些子表与父表的关联列都是一样的;就是说父表的某一列关联着好几个子表;
|
-- 作者:有点蓝
-- 发布时间:2025/3/8 9:11:00
--
完整的错误提示文字发上来看看
|
-- 作者:syst
-- 发布时间:2025/3/8 9:59:00
--
此主题相关图片如下:删除错误提示.png

也不是每次都会弹出,就是偶尔又有
|
-- 作者:syst
-- 发布时间:2025/3/8 10:01:00
--
此主题相关图片如下:错误提示.png

|
-- 作者:syst
-- 发布时间:2025/3/8 10:03:00
--
此主题相关图片如下:添加错误提示.png

|
-- 作者:有点蓝
-- 发布时间:2025/3/8 10:14:00
--
"数量"是字符列?
把drawcell完整代码发上来,发自己真实代码,不要发帮助的代码
|
-- 作者:syst
-- 发布时间:2025/3/8 10:49:00
--
if e.Row.Index = -1 then return If e.Table.Current IsNot Nothing Then If e.Row("数量") < 0 Then e.Style = "退货" End If End if
数量列是双精度小数
|
-- 作者:有点蓝
-- 发布时间:2025/3/8 10:53:00
--
去掉其它代码,只保留下面
If e.Row("数量") < 0 Then e.Style = "退货" End If
不行再试试 If e.Table.rows.count > 0 Then If e.Row("数量") < 0 Then e.Style = "退货" End If End if
|
-- 作者:syst
-- 发布时间:2025/3/8 11:10:00
--
好的,谢谢蓝老师;之前就是这样的;
If e.Row("数量") < 0 Then e.Style = "退货" End If
我先试试,谢谢哈!
|
-- 作者:syst
-- 发布时间:2025/3/8 11:23:00
--
蓝老师,这种关联表比较多的形式;且都是在同一个窗口里面的TabControl控件里面; 应该对增加行和删除行是没有什么影响的吧?需要注意什么的么?
还有一个问题:
已经做了所有所有表的禁止复制粘贴了,发布以后,还是可以用ctrl+c从表格里面复制出来数据;这种情况应该怎么做才能禁止? For Each dt9 As DataTable In DataTables dt9.AllowClipBoard = False Next
[此贴子已经被作者于2025/3/8 12:28:16编辑过]
|