以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- drawcell的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=130082) |
-- 作者:rjh4078 -- 发布时间:2019/1/12 16:26:00 -- drawcell的问题 如果某个表有了drawcell代码 就无法再执行全局drawcell吗? |
-- 作者:rjh4078 -- 发布时间:2019/1/12 16:35:00 -- 现在发现有几个表的drawcell事件不执行 我已经在currenttablechanged事件中加入了 CurrentTable.DataTable.GlobalHandler.DrawCell=True 在全局表事件中设置了如下代码 Dim dr As DataRow=DataTables("表格标记").find("表名=\'" & e.Table.name & "\' and 用户=\'" & _userid & "\' and id=\'" & e.Row("_identify") & "\'") If dr IsNot Nothing Then Dim s As String s=Rand.NextString(5) e.Table.DataTable.AddUserStyle(s,Color.FromARGB(dr("颜色")),Color.black) e.Style=s End If |
-- 作者:rjh4078 -- 发布时间:2019/1/12 16:41:00 -- 另外发现这种标记表格的方式非常耗资源 CPU基本都在15以上 开了20个表 |
-- 作者:rjh4078 -- 发布时间:2019/1/12 16:52:00 -- 把个表的drawcell事件删除 全局的drawcell才生效 现在的问题是有没有办法优化下效率,感觉非常卡顿
|
-- 作者:有点蓝 -- 发布时间:2019/1/12 17:17:00 -- 以下是引用rjh4078在2019/1/12 16:26:00的发言:
是的
如果某个表有了drawcell代码 就无法再执行全局drawcell吗? |
-- 作者:有点蓝 -- 发布时间:2019/1/12 17:17:00 -- 具体代码或者上传实例说明 |
-- 作者:rjh4078 -- 发布时间:2019/1/12 19:35:00 -- drawcell的代码 Dim dr As DataRow=DataTables("表格标记").find("表名=\'" & e.Table.name & "\' and 用户=\'" & _userid & "\' and id=\'" & e.Row("_identify") & "\'") If dr IsNot Nothing Then Dim s As String s=Rand.NextString(5) e.Table.DataTable.AddUserStyle(s,Color.FromARGB(dr("颜色")),Color.black) e.Style=s End If 我做了一张表用来保存用户标记的行的id和颜色 然后绘制 |
-- 作者:rjh4078 -- 发布时间:2019/1/12 19:53:00 -- 效果能达到 但是就是整个项目都卡住了 点一下 卡几秒 |
-- 作者:有点甜 -- 发布时间:2019/1/13 22:18:00 -- 不要再drawcell事件写耗时代码,特别是find的代码。
与其一直find,不如加入一个辅助列,把信息引用过来。然后再在drawcell里面直接判断本表数据。 |
-- 作者:rjh4078 -- 发布时间:2019/1/14 15:13:00 -- 主要表太多 如果每个表都加辅助列有点麻烦 |