以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 文本变化后按值进行筛选间隔时间的判断问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=75663) |
-- 作者:supwork -- 发布时间:2015/10/12 14:54:00 -- 文本变化后按值进行筛选间隔时间的判断问题 If LastInputTickCount > 20 Then Functions.Execute("通用查询窗口筛选",e,1) End If 文本值变化就执行筛选功能.如果录入10个字符则这段 筛选代码被执行10次,如果录入速度相当快,或者是一次性粘贴进去,则系统也执行10次代码 实际上只需执行一次就行 我想实现的效果是,判断文本变化后的间隔时间,如果太短则不执行代码(如间隔时间在20以内) 按以上代码写怎么不行 这个值改成200也不行,原因何在,或者代码要如何写
|
-- 作者:大红袍 -- 发布时间:2015/10/12 15:09:00 -- 这个是没办法处理的,你不知道什么时候输入结束。
检查回车查询,或者用按钮查询 |
-- 作者:supwork -- 发布时间:2015/10/12 15:43:00 -- 按说应该有办法的,在要执行代码时,检查间隔时间,间隔时间太短的话就不执行代码了 |
-- 作者:大红袍 -- 发布时间:2015/10/12 15:44:00 -- 不知道你什么时候结束啊,间隔短但是最后一个字符了无法检测的啊。 |
-- 作者:大红袍 -- 发布时间:2015/10/12 15:49:00 -- 或者你换一种思路。每次进入事件,开启一下计时器,一秒后执行筛选代码。
再次进入的时候,关闭计时器,最后在开启一秒后执行。 |
-- 作者:supwork -- 发布时间:2015/10/12 17:39:00 -- 变换一下问题 如何得到最近两次按键的间隔时间
|
-- 作者:大红袍 -- 发布时间:2015/10/12 17:41:00 -- static ptime As Date = Nothing Dim sp As TimeSpan = Date.now - ptime |
-- 作者:supwork -- 发布时间:2015/10/13 9:26:00 -- 1秒内限制触发无效思路不错,但第一个字符录入后必定执行一次. 实际上可以做到如果第一字符与第二字符间隔时间短也不执行 static ptime As Date static sp As TimeSpan = Nothing Dim tb As Table = e.Form.Controls("Table1").Table If ptime = Nothing Then ptime = Date.now Else sp = Date.now - ptime ptime = Date.now Dim r As Row = tb.AddNew r("分类")=e.Sender.text r("名称")= sp.TotalSeconds End If [此贴子已经被作者于2015/10/13 9:26:21编辑过]
|