编程论坛
注册
登录
编程论坛
→
VB6论坛
VB6 and Scanner 对 TEXTBOX 的问题
wube
发布于 2018-08-31 18:28, 2464 次点击
VB6 要如何写让Scanner扫条码后填值入第一个TEXTBOX后自动将Focus移动到下一个TEXTBOX ?
TabIndex顺序有设定过了
9 回复
#2
Artless
2018-08-31 23:23
sendkey
#3
风吹过b
2018-09-02 17:47
如果 Scanner 后长度是固定,那么在 文本框改变的事件里判断长度。符合条件,就下一个控件得到焦点。
每次进这个窗口,或者等等待输入时,把焦点都给这个文本框。
窗口上,能不出现能获得焦点的控件就不要出现。
按钮什么的,可以自己用标签做。默认按钮,可以在 可以得到焦点的控件里判断。
#4
wube
2018-09-02 18:49
基本跟我想的差不多,但是我之前依照此要领去试,出现一个问题,在文本筐的KeyUp事件内可以做这些事,
问题是程式跑的速度太快,KeyIn可能是属于IO动作,所以导致呼叫下一个文本匡的GetFoces启动时,
第一个文本匡才只取得第一个字,然后就跳到下一个文本匡了。而每个文本匡取得的字符串,
都还要去跟后端的数个数据库作查询或新增删除等动作,资料不齐全会导致当机。
当然也能在每个文本匡事件中写有条件式的无穷回圈去保证文本匡的资料正确性,
但是这样写感觉有点弱,想看看是否有更好的解法?
经你一题我才想到,文本匡的字数还真的不是固定长度,这确实也是个问题。
最少会有两个文本匡的资料需要被扫瞄进去,剩下的资料都由这两个字符串去带出来。
看超商在缴信用卡费时,都一次扫三个条码,每扫一条中间也没看到服务员操作键盘按什么换格按键,
所以我想这功能一定可以做到,只是不知道要怎实现,老板是说可以对扫描枪作设定,
每扫一条让扫描枪自带送出Enter的Code,只是这跟我的需求好像扯不上关系。
#5
wds1
2018-09-02 20:15
在text的字符改变事件中判断条码长度和text长度,当字符长度一致在调整焦点。
#6
风吹过b
2018-09-02 21:19
带出enter,正好啊,检测每一个输入的键值,检测到enter 就跳下一个啊 。
#7
wmf2014
2018-09-03 11:15
条码枪都会在扫描完成时发送回车键(我记得当初没对条码枪做什么特别设定的),这时就可以使用“sendkeys "{tab}"”命令跳到下一个或“控件名.setfocus”跳到指定文本框了。
#8
wube
2018-09-03 17:58
Private Sub txtEmployeeID_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
....
endif
End Sub
P.S "If KeyCode = 13 Then"上面不能加任何代码才行
#9
wube
2018-09-03 18:02
.SetFocus还不能写在Private Sub Form_Load()里面,要写到Private Sub Form_Activate()才行
_KeyDown()事件之后再串_LostFocus()事件,才完成需求
#10
wube
2018-09-03 18:07
加上之前查询AD的代码后,一整个爽,刷工号条码就带出该使用者的AD内纪录资讯,
然后再刷第二条查询物品纪录,剩下就是资料要透过FTP上传下载,本机不留资料,
资料都放Server上,目前无法用MSSQL数据库,长官说预算要编到明年,
现在先用文字档顶着先
1