Foxtable(狐表)用户栏目专家坐堂 → MouseEnterCell 问题求助


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

主题:MouseEnterCell 问题求助

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


加好友 发短信
等级:幼狐 帖子:64 积分:632 威望:0 精华:0 注册:2018/3/25 16:34:00
MouseEnterCell 问题求助  发帖心情 Post By:2018/10/23 9:41:00 [只看该作者]

MouseEnterCell 中现有代码:

If e.Col.Name = "气味" Then
    Dim v As String = "正常无异味"
    e.Table.ShowToolTip(v, e.Row, e.Col)
End If

 

我想要改为鼠标进入停止3秒后,再显示内容,应该如何写,谢谢。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/23 11:56:00 [只看该作者]

vars("ltime") = Date.now
vars("r") = e.Row
vars("c") = e.Col
If e.Col.Name = "第二列" Then
    Dim sdt As Date = Date.Now
    While Date.Now < sdt.AddSeconds(3)
        Application.DoEvents
    End While
    If (Date.now-cdate(vars("ltime"))).Totalseconds >= 3 andalso vars("r").index = e.Row.index AndAlso vars("c").index = e.Col.index Then
        Dim v As String = "正常无异味"
        e.Table.ShowToolTip(v, vars("r"), vars("c"), 5000)
    End If
End If

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


加好友 发短信
等级:幼狐 帖子:64 积分:632 威望:0 精华:0 注册:2018/3/25 16:34:00
  发帖心情 Post By:2018/10/23 14:17:00 [只看该作者]

以下是引用有点甜在2018/10/23 11:56:00的发言:
vars("ltime") = Date.now
vars("r") = e.Row
vars("c") = e.Col
If e.Col.Name = "第二列" Then
    Dim sdt As Date = Date.Now
    While Date.Now < sdt.AddSeconds(3)
        Application.DoEvents
    End While
    If (Date.now-cdate(vars("ltime"))).Totalseconds >= 3 andalso vars("r").index = e.Row.index AndAlso vars("c").index = e.Col.index Then
        Dim v As String = "正常无异味"
        e.Table.ShowToolTip(v, vars("r"), vars("c"), 5000)
    End If
End If

 

使用上边代码是可以实现3秒后显示,但如果鼠标点动频繁狐表会停止工作,是不是运算太复杂的原因?


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20181023141221.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/23 14:54:00 [只看该作者]

计划管理

 

If (Date.now-cdate(vars("ltime"))).Totalseconds >= 3 Then
    MyTimers("计划1").Enabled = False
    Dim v As String = "正常无异味"
    Tables("表A").ShowToolTip(v, vars("r"), vars("c"), 5000)
End If

 

mouseentercell

 

vars("ltime") = Date.now
vars("r") = e.Row
vars("c") = e.Col
If e.Col.Name = "第二列" Then
    MyTimers("计划1").Interval = 500
    MyTimers("计划1").Enabled = True
Else
    MyTimers("计划1").Enabled = False
End If


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


加好友 发短信
等级:幼狐 帖子:64 积分:632 威望:0 精华:0 注册:2018/3/25 16:34:00
  发帖心情 Post By:2018/10/26 13:47:00 [只看该作者]

If (Date.now-cdate(vars("ltime"))).Totalseconds >= 3 Then
    MyTimers("计划1").Enabled = False
    Dim v As String = Dim v As String = "-这里内容很长很长,有————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————大概这么长"

    Tables("表A").ShowToolTip(v, vars("r"), vars("c"), 5000)

   Tables("表B").ShowToolTip(v, vars("r"), vars("c"), 5000)
   Tables("表C").ShowToolTip(v, vars("r"), vars("c"), 5000)
   Tables("表D").ShowToolTip(v, vars("r"), vars("c"), 5000)
End If

按以上的在计划管理中,可正常使用,但若再加表,则报错“索引超出范围”(如以下),这是什么原因,谢谢。

If (Date.now-cdate(vars("ltime"))).Totalseconds >= 3 Then
    MyTimers("计划1").Enabled = False
    Dim v As String = Dim v As String = "-这里内容很长很长,有————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————大概这么长"

    Tables("表A").ShowToolTip(v, vars("r"), vars("c"), 5000)

   Tables("表B").ShowToolTip(v, vars("r"), vars("c"), 5000)
   Tables("表C").ShowToolTip(v, vars("r"), vars("c"), 5000)
   Tables("表D").ShowToolTip(v, vars("r"), vars("c"), 5000)
   Tables("表E").ShowToolTip(v, vars("r"), vars("c"), 5000)
End If

此主题相关图片如下:qq截图20181026134156.png
按此在新窗口浏览图片

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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/26 14:04:00 [只看该作者]

鼠标只能在一个表上面,显示其他表的提示有意义吗?这些表的列和行和数据都完全一样?

计划管理

 

If (Date.now-cdate(vars("ltime"))).Totalseconds >= 3 Then
    MyTimers("计划1").Enabled = False
    Dim v As String = "正常无异味"
    Tables(vars("n")).ShowToolTip(v, vars("r"), vars("c"), 5000)
End If

 

mouseentercell

 

vars("ltime") = Date.now
vars("r") = e.Row
vars("c") = e.Col

vars("n") = e.table.name
If e.Col.Name = "第二列" Then
    MyTimers("计划1").Interval = 500
    MyTimers("计划1").Enabled = True
Else
    MyTimers("计划1").Enabled = False
End If


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


加好友 发短信
等级:幼狐 帖子:64 积分:632 威望:0 精华:0 注册:2018/3/25 16:34:00
  发帖心情 Post By:2018/10/26 14:10:00 [只看该作者]

我一共6个表,鼠标提示的信息都是一样的,提示的是产品录入的标准,6个表分别对应公司6条生产线。

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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/26 14:23:00 [只看该作者]

上传具体实例说明

 回到顶部