wpf textbox 扫描枪 扫入条码 datagrid录入信息
来源:互联网 发布:淘宝抢货 编辑:程序博客网 时间:2024/04/28 17:49
这个问题困扰我一天,我总是在扫描枪触发textbox的事件里搞不准,我也没上网看看别人是怎么解决的,总是一个人在那想啊想!试过了好多的方法,今天终于给解决了!
其实我就完成像类似超市条码扫描的那种功能,扫描一个条码在datagrid录入相应的信息!
起初走过了很多误区(一直认为条码的录入只是单纯的录入条码):
误区1:通过textbox的textchange事件,以为条码时一次录入的,但是后来真当我录入时发现条码时从左到右一次被录入文本框的,从录入第一字母或是数字时就得触发一次事件,这样肯定不能执行相关的代码的,其实没用到扫描枪时,就在想如果哪天条码不清楚得手动输入怎么办?这又使我想到得用线程,我想单独开个线程,等到过了相应的时间在录入条码,但是线程方面我也用的不好、、录入后总得有个事件触发吧!没有事件触发,线程它会自动执行吗?理论上是不会的、、、即使会时间段也是不好把握的。其实我在textchange里面线程休眠了一段时间,但是录入第一字母或是数字的时候,事件已经被触发、、、所以这个事件最早的被out了!
误区2:通过textbox的lostfouce事件,这个事件貌似可以解决上面的总总问题,但是每次失去焦点时候就得要有个控件来得到焦点,而且录入完成后又得得到焦点,总觉得导致界面不很人性化,而且我一直以为条码的录入只是单纯的录入条码,根本就不可能在做什么、、
今天去公司,什么也没做,就把条码扫描仪插到了自己的电脑上,毕竟找问题得从核心找起,后来上网才知道然来,条码扫描仪是可以设置的,公司网点上用的扫描仪都是以enter结尾。
有了这个认识一切over了 ,后来我用到了keypress事件,只需判断最后的enter一切都ok了!起初是想用keypress事件的,但是wpftextbox并没有keypress事件,而且keydown里面我找了半天也没找到keycode,如是我写了个测试的窗体,发现在textbox按回车时返回的是Return,我想有这就足够了吧!用e.key.toString().equals("Return")然后做相应的操作、、、
而后datagrid动态添加一条信息的时候发现了一个问题,我起初的思路是判断datagrid是否有数据,如果是第一次创建一个list然后将相应的信息封装到一个实体类,加入到list中赋给source源,第二次的时候List<T> list=(List<T>)this.datagrid.itemSource;然后list.add(T),this.datagrid.itemsource=list;理论上没错的,结果报异常了。其实仔细想想异常的信息,发现是有问题的,当你第二次赋值的时候,datagrid的source已经存在了source程序不可能自动跟你覆盖,所以你得清空source源,从新赋一次值就ok了!(当然其中也曾尝试过很多的方法)!
- wpf textbox 扫描枪 扫入条码 datagrid录入信息
- wpf textbox 扫描枪 扫入条码 datagrid录入信息
- 扫描枪扫不到条码读不到条形码的解决方法
- 为什么扫描枪只能扫入数字但是扫不进字母
- TextBox里录入的信息相当于Combox
- 美国Intermec条码扫描枪
- 监测条码枪扫描结束
- 条码扫描
- 使用zxing扫描条码是设置扫码方向为竖屏
- 条码扫描枪的光电器件(一)
- 条码扫描枪的数据接收处理
- 学习记录-Qt读取条码扫描枪
- iOS 条码及二维码扫描(从相册中读取条形码/二维码) 以及扫码遇到的问题
- 条码电子秤商品怎么录入?
- textbox中输入关键字,datagrid显示相应信息
- 红光条码扫描枪和激光扫描枪有什么区别?购买条码扫描枪,盘点机时该如何选择。
- 条码扫描手机软件设计
- Android条码扫描
- 忆龙2009:无线Mesh的优点
- static全局变量 局部变量的原理 本质
- Select n numbers from 1 to m with all of array 'all' and none of array 'none'
- Oracle10g里sql语句的执行计划
- ptoteus仿真小细节出错原因
- wpf textbox 扫描枪 扫入条码 datagrid录入信息
- 忆龙2009:无线Mesh网络的部署
- ----php之XML转数组函数
- java摘抄
- vc++ 无法调试解决方案
- Oracle的在线重定义表功能 (一)
- 关于ORACLE的ora-12505报错以及连接问题的解决及相关资料
- 解决问题:心态 原则 方法
- 在线重定义表为分区表