以文本方式查看主题

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

--  作者:fubblyc
--  发布时间:2016/1/27 16:10:00
--  文本框只允许扫描枪扫码输入,不允许在键盘打字输入
各位老师好,因为扫码枪扫码,如果员工知道这个条码的内容,就可以不用通过扫码枪扫可以直接输入条码内容,这样会导致舞弊行为。
现在想是不是有什么方法,可以让文本框只能通过扫描枪扫码输入,而不能直接通过键盘打字输入呢?
谢谢!!

--  作者:大红袍
--  发布时间:2016/1/27 16:24:00
--  

不能识别的,只能变通处理:

 

从开始输入到输入结束,用时多少时间,如果是很快的,就判断成扫描枪输入。

 

为避免ctrl+V或者右键菜单粘贴,就在keydown事件禁用ctrl+V,而且要把文本框的右键菜单去掉

 

Dim t As object = e.Form.Controls("TextBox1").BaseControl
t.ContextMenuStrip = new System.Windows.Forms.ContextMenuStrip()


--  作者:fubblyc
--  发布时间:2016/1/27 17:00:00
--  
大红袍老师 威武!!
--  作者:fubblyc
--  发布时间:2016/1/27 17:01:00
--  
从开始输入到输入结束,用时多少时间,如果是很快的,就判断成扫描枪输入。
这段代码大概怎么写呢。。。

--  作者:大红袍
--  发布时间:2016/1/27 17:19:00
--  

keydown事件

 

static stime As Date

If e.sender.Text.length = 1 Then
    stime = Date.Now
End If

If e.keycode = 13 Then
    msgbox((Date.now-stime).TotalSeconds)
End If


--  作者:fubblyc
--  发布时间:2016/1/27 19:08:00
--  
大红袍老师,我看帮助的 key的枚举 是这样的: e.KeyCode = Keys.F11  那你这个 If e.keycode = 13 Then  是什么意思,在帮助上没看到
--  作者:大红袍
--  发布时间:2016/1/27 19:58:00
--  

枚举实际上就是一个数字

 

msgbox(Keys.Enter)


--  作者:fubblyc
--  发布时间:2016/1/27 20:44:00
--  
哦哦,原来如此