以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]能否将表事件的代码改写到全局表事件 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=28746) |
-- 作者:yyzlxc -- 发布时间:2013/2/17 10:30:00 -- [求助]能否将表事件的代码改写到全局表事件 各位老师,新年好!
1、表事件BeforeShowContextMenu \'隐藏快捷键
\'整行突出 DataTables("表名").SysStyles("Frozen").BackColor = Color.LightCyan |
-- 作者:lin_hailun -- 发布时间:2013/2/17 10:44:00 -- 首先,你需要开启对应的全局表事件。 后这样写。 If _UserGroup = "开发" Then e.Cancel = False Else e.Cancel = True End If ---------------------------------- e.DataTable.SysStyles("Frozen").BackColor = Color.LightCyan e.DataTable.SysStyles("CurrentRow").BackColor = Color.Blue e.DataTable.SysStyles("CurrentRow").ForeColor = Color.White (这里只需要设置一次就行了,建议写在afteropenproject事件里,代码要变一下) for each dt as datatable in datatables dt.SysStyles("Frozen").BackColor = Color.LightCyan dt.SysStyles("CurrentRow").BackColor = Color.Blue dt.SysStyles("CurrentRow").ForeColor = Color.White next -------------------------------------------------- 开启全局表 http://www.foxtable.com/help/topics/0671.htm |
-- 作者:lsy -- 发布时间:2013/2/17 11:51:00 -- 如果不需要判断表名,代码写在全局表事件中省事,如果需要用select case 判断表名,又要判断行、列,那在全局表事件中,代码将多到不忍目睹,很难管理,还不如写到每张表中。 |
-- 作者:yyzlxc -- 发布时间:2013/2/17 13:35:00 -- 谢谢林老师的指教! 第一段代码放在全局表事件的BeforeShowContextMenu事件中,在项目事件的Initialize事件中写入开启全局表的代码:
For Each dt As DataTable In DataTables
好像对用CrossTableBuilder生成的汇总表不起作用,其他表可行。
第二段代码好像不能放在全局表事件的CurrentChanged事件中,否则会出现错误提示。
只能用以下代码写在afteropenproject事件里,同样对用CrossTableBuilder生成的汇总表不起作用。
for each dt as datatable in datatables 以上问题是否有办法解决,还请林老师指教,谢谢!! |
-- 作者:lin_hailun -- 发布时间:2013/2/17 14:15:00 -- 改一下就可以了。全局表事件里。 DataTables(e.Table.name).SysStyles("Frozen").BackColor = Color.LightCyan DataTables(e.Table.name).SysStyles("CurrentRow").BackColor = Color.Blue DataTables(e.Table.name).SysStyles("CurrentRow").ForeColor = Color.White |