以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  MouseEnterCell 问题求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=126503)

--  作者:vxzx
--  发布时间:2018/10/23 9:41:00
--  MouseEnterCell 问题求助

MouseEnterCell 中现有代码:

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

 

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


--  作者:有点甜
--  发布时间: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
--  发布时间: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
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间: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
--  发布时间: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
按此在新窗口浏览图片

--  作者:有点蓝
--  发布时间: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
--  发布时间:2018/10/26 14:10:00
--  
我一共6个表,鼠标提示的信息都是一样的,提示的是产品录入的标准,6个表分别对应公司6条生产线。
--  作者:有点蓝
--  发布时间:2018/10/26 14:23:00
--  
上传具体实例说明