以文本方式查看主题

-  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=146679)

--  作者:ufo20085
--  发布时间:2020/2/29 0:32:00
--  [求助]drawcell事件必须鼠标经过单元格才触发效果

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

代码如下:

 

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
--  发布时间:2020/2/29 1:31:00
--  
在计划管理里面增加一个计划, 时间设置为500毫秒 
代码: Tables("用卡记录").refresh



--  作者:程兴刚
--  发布时间:2020/2/29 3:02:00
--  
drawcell事件绘制单元格样式最好别用计划执行事件,建议增加一个逻辑型辅助列,点击当前行时,按您的条件自动勾选符合条件的行,离开行之前取消勾选符合条件的行,设一列的勾选作为drawcell的绘制条件,再搞不定发文件!
--  作者:有点蓝
--  发布时间: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
--  发布时间:2020/2/29 13:53:00
--  

厉害,蓝老师。

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


--  作者:ufo20085
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2020/2/29 14:13:00
--  
表格自身刷新的问题
--  作者:sloyy
--  发布时间:2020/2/29 20:12:00
--  
AfterSelChange

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

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


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

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