wpf textbox 扫描枪 扫入条码 datagrid录入信息

本文介绍了作者在WPF项目中遇到的条码扫描录入问题及解决过程。最初尝试通过textbox的textchange和lostfocus事件处理,但发现不适用。最终通过设置扫描枪以回车键结尾,并在keydown事件中监听"Return"键,成功实现扫描条码后在datagrid中录入信息。同时,文章提到了在datagrid动态添加数据时遇到的异常情况,指出需要清空原有itemSource再重新赋值的解决办法。
摘要由CSDN通过智能技术生成

这个问题困扰我一天,我总是在扫描枪触发textbox的事件里搞不准,我也没上网看看别人是怎么解决的,总是一个人在那想啊想!试过了好多的方法,今天终于给解决了!

其实我就完成像类似超市条码扫描的那种功能,扫描一个条码在datagrid录入相应的信息!

起初走过了很多误区(一直认为条码的录入只是单纯的录入条码):

误区1:通过textbox的textchange事件,以为条码时一次录入的,但是后来真当我录入时发现条码时从左到右一次被录入文本框的,从录入第一字母或是数字时就得触发一次事件,这样肯定不能执行相关的代码的,其实没用到扫描枪时,就在想如果哪天条码不清楚得手动输入怎么办?这又使我想到得用线程,我想单独开个线程,等到过了相应的时间在录入条码,但是线程方面我也用的不好、、录入后总得有个事件触发吧!没有事件触发,线程它会自动执行吗?理论上是不会的、、、即使会时间段也是不好把握的。其实我在textchange里面线程休眠了一段时间,但是录入第一字母或是数字的时候,事件已经被触发、、、所以这个事件最早的被out了!

误区2:通过textbox的lostfouce事件,这个事件貌似可以解决上面的总总问题,但是每次失去焦点时候就得要有个控件来得到焦点,而且录入完成后又得得到焦点,总觉得导致界面不很人性化,而且我一直以为条码的录入只是单纯的录入条码,根本就不可能在做什么、、

今天去公司,什么也没做,就把条码扫描仪插到了自己的电脑上,毕竟找问题得从核心找起,后来上网才知道然来,条码扫描仪是可以设置的,公司网点上用的扫描仪都是以enter结尾。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值