zoukankan      html  css  js  c++  java
  • 【转】C#中判断扫描枪输入与键盘输入

    提出问题:在收货系统中,常常要用到扫描枪扫描条码输入到TextBox,当条码无法扫描时,需要手工输入。如果是扫描枪输入时,我们将自动去判读条码,而手工输入时,最终需要加按回车键确认后判读条码。这时候我们就要判断输入设备是手工还是扫描枪。尝试的方法:

    1.将TextBox属性设为ReadOnly=true。结果:无法输入。
    2.在TextBox的KeyPress事件中设置属性e.handle=true。结果:扫描枪输入时也会触发KeyPress事件,因此也不能输入。
    3.在TextBox的ValueChanged事件中判断结果。结果:扫描枪也是一个一个字符输入,不是一次性将整个条码输入。
    思考:扫描枪其实在输入上与键盘完全相似。但是人工输入和扫描设备输入的区别在于,扫描设备输入速度比较快而且时间间隔比较平均。
    实验:
    loading...
    实验结果证明开始的推断。
    解决方法:
    Private DateTime _dt = DateTime.Now; //定义一个成员函数用于保存每次的时间点
    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
    DateTime tempDt = DateTime.Now; //保存按键按下时刻的时间点
    TimeSpan ts = tempDt .Subtract(_dt); //获取时间间隔
    if (ts.Milliseconds > 50) //判断时间间隔,如果时间间隔大于50毫秒,则将TextBox清空
    textBox1.Text = "";
    dt = tempDt ;
    }
    至此, 问题解决,希望大家有更好的方法留言交流
    转:http://www.cnblogs.com/yyknight/archive/2011/10/07/2200399.html
  • 相关阅读:
    Java 递归算法,遍历文件夹下的所有文件。
    基于appium的移动端自动化测试,密码键盘无法识别问题
    第一个脚印
    最简单ajax,$.post()用法
    关于图片title与alt
    iframe loading 效果
    iframe 跨域的高度自适应
    练习卷动式新闻广告牌
    JS学习笔记《数值与字符串相加篇》
    解决FLASH的层级问题
  • 原文地址:https://www.cnblogs.com/gates/p/4512011.html
Copyright © 2011-2022 走看看