以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]禁止手动输入  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=56846)

--  作者:l451826728
--  发布时间:2014/9/13 15:30:00
--  [求助]禁止手动输入
当前输入框规则:
1.编码是16位字符,必须扫码输入或刷卡输入:
实现思路:手工输入必须在0.5秒之内输入所有16位字符,否则自行回删至0字符状态(刷卡或扫码不存在0.5秒还输入不了16位字符的问题)

2、当前输入框不允许使用粘贴输入
实现思路:禁用鼠标右键菜单,禁用Ctrl+C,禁用其他可实现复制粘贴的键盘命令,禁用拖拽输入

求高手写以上代码!

--  作者:Bin
--  发布时间:2014/9/13 15:48:00
--  
1.比较笨的方法就用计时器吧
2.表属性 允许黏贴 设置为False

--  作者:l451826728
--  发布时间:2014/9/13 18:32:00
--  
是要在录入窗口实现的,能否在事件代码里面解决?
--  作者:狐狸爸爸
--  发布时间:2014/9/13 20:02:00
--  

可以用Static变量解决,在TextChanged事件设置代码,具体自行调整:

 

Static dt As date

if  e.senter.text > "" Andalso e.Senter.text.Length = 1  \'记录第一个字符输入时的时间

    dt = Date.Now

Elseif (Date.Now - dt).TotalSeconds > 0.5 如果超过0.5秒

    if  e.senter.text > "" Andalso e.Senter.text.Length < 5 Then \'内容少于5个字符

         e.Sender.Value = ""  \'清除内容

    end if

end if