条形码输入的问题
我的窗体设置了FORM.PREVIEW=TRUE,即窗体捕获键盘或条形码枪,现在我用枪扫条形码,文本框得到的东西有点奇怪,比如扫个 VKC080WH3000AB1,到我的文本框就成了 VKC080 WH300 AB1,这是为什么??
If KeyCode <> 13 Then
tmpStrIn = tmpStrIn + Chr(KeyCode)
Else
txtUnitModel.Text = Trim(tmpStrIn)
tmpStrIn = ""
End If
因为条形码枪输入的最后一位是个回车,所以我等碰到回车,才把文本赋给文本框,赋值完了再把变量清空,以便下次再赋值。
问题点数:30、回复次数:5Top
1 楼weiweiplay(虚幻)回复于 2005-11-04 13:42:16 得分 5
看不出有问题,帮顶Top
2 楼icbcnbxs(我来灌水)回复于 2005-11-04 14:12:28 得分 0
我看也是啊,如果我把文本框获得焦点,扫进去的条形码显示却正常~我怀疑是不是条形码一次输入好多位数,而程序处理不过来,导致字符串分段错误??Top
3 楼feiyun0112(http://feiyun0112.cnblogs.com/)回复于 2005-11-04 14:13:19 得分 2
条形码枪的问题,重新设一下格式Top
4 楼crycoming(瞎编)回复于 2005-11-04 14:41:08 得分 23
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode <> 13 Then
If IsValid(KeyCode) Then
tmpStrIn = tmpStrIn + Chr(KeyCode)
End If
Else
txtUnitModel.Text = Trim(tmpStrIn)
tmpStrIn = ""
End If
End Sub
Private Function IsValid(n As Long) As Boolean
If n >= Asc("a") And n <= Asc("z") And _
n >= Asc("A") And n <= Asc("Z") And _
n >= Asc("0") And n <= Asc("9") Then
IsValid = True
End If
End FunctionTop
5 楼icbcnbxs(我来灌水)回复于 2005-11-07 08:36:34 得分 0
to crycoming(瞎编)
为什么非要这样判断呢??a~z A~Z 0~9,难道扫进去的时候,还有别的字符?(除回车),请指教~Top




