Foxtable(狐表)用户栏目专家坐堂 → [求助]drawcell事件必须鼠标经过单元格才触发效果


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

主题:[求助]drawcell事件必须鼠标经过单元格才触发效果

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


加好友 发短信
等级:幼狐 帖子:196 积分:2913 威望:0 精华:0 注册:2016/8/31 14:05:00
[求助]drawcell事件必须鼠标经过单元格才触发效果  发帖心情 Post By:2020/2/29 0:32:00 [只看该作者]

想实现的功能,当鼠标点击某一行时,用颜色标注出相同卡号和相同还款日的单元格。

代码如下:

 

Dim bgd As String = Tables("用卡记录").Current("卡号")
Dim dt As Date = Tables("用卡记录").Current("还款日")
If e.Col.Name = "卡号"
    If e.Row("卡号") = bgd And e.Row("还款日") = dt Then
        e.Style = "同一张卡"

    End If
   
End If

 

但是写完drawcell事件,发现实现的功能和预想的不一样。本来想点击某行后,马上都标注出需要的单元格的颜色。

但是实际效果确实,鼠标必须经过单元格,才能更新该单元格样式。


图片点击可在新窗口打开查看此主题相关图片如下:honeycam 2020-02-29 00-24-11.gif
图片点击可在新窗口打开查看


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


加好友 发短信
等级:九尾狐 帖子:2180 积分:13816 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2020/2/29 1:31:00 [只看该作者]

在计划管理里面增加一个计划, 时间设置为500毫秒 
代码: Tables("用卡记录").refresh



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


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2020/2/29 3:02:00 [只看该作者]

drawcell事件绘制单元格样式最好别用计划执行事件,建议增加一个逻辑型辅助列,点击当前行时,按您的条件自动勾选符合条件的行,离开行之前取消勾选符合条件的行,设一列的勾选作为drawcell的绘制条件,再搞不定发文件!

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107729 积分:547978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/29 8:51:00 [只看该作者]

AfterSelChange事件
e.Table.refresh

drawcell事件


If e.Col.Name = "卡号" andalso 
e.Table.Current isnot nothing

Dim bgd As String = e.Table.Current("卡号")
Dim dt As Date = e.Table.Current("还款日")
    If e.Row("卡号") = bgd And e.Row("还款日") = dt Then 
        e.Style = "同一张卡"

    End If
    
End If


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


加好友 发短信
等级:幼狐 帖子:196 积分:2913 威望:0 精华:0 注册:2016/8/31 14:05:00
  发帖心情 Post By:2020/2/29 13:53:00 [只看该作者]

厉害,蓝老师。

但是话说原先的代码为什么不管用,必须鼠标经过才起作用呢?


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


加好友 发短信
等级:幼狐 帖子:196 积分:2913 威望:0 精华:0 注册:2016/8/31 14:05:00
  发帖心情 Post By:2020/2/29 13:54:00 [只看该作者]

以下是引用有点蓝在2020/2/29 8:51:00的发言:
AfterSelChange事件
e.Table.refresh

drawcell事件


If e.Col.Name = "卡号" andalso 
e.Table.Current isnot nothing

Dim bgd As String = e.Table.Current("卡号")
Dim dt As Date = e.Table.Current("还款日")
    If e.Row("卡号") = bgd And e.Row("还款日") = dt Then 
        e.Style = "同一张卡"

    End If
    
End If

厉害,蓝老师,可以了。

但是话说原先的代码不管用,必须鼠标经过才起作用,是什么原因呢?

[此贴子已经被作者于2020/2/29 13:54:46编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107729 积分:547978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/29 14:13:00 [只看该作者]

表格自身刷新的问题

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


加好友 发短信
等级:九尾狐 帖子:2180 积分:13816 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2020/2/29 20:12:00 [只看该作者]

AfterSelChange

选择不同的单元格后执行,也就是表的RowSelColSel属性发生变化后执行。

我居然还从来没有用过这个好东西


我突然想明白了,这些都是直接操纵表格的事件,但是一个好的系统,都是隐藏表格,用窗口和用户交流的,基本不会用到这些事件.

[此贴子已经被作者于2020/2/29 20:23:56编辑过]

 回到顶部