尝试的方法:
1.将TextBox属性设为ReadOnly=true。结果:无法输入。
2.在TextBox的KeyPress事件中设置属性e.handle=true。结果:扫描q输入时也会触发KeyPress事件,因此也不能输入。
3.在TextBox的ValueChanged事件中判断结果。结果:扫描q也是一个一个字符输入,不是一次性将整个条码输入。
思考:扫描q其实在输入上与键盘完全相似。但是人工输入和扫描设备输入的区别在于,扫描设备输入速度比较快而且时间间隔比较平均。
实验:
解决方法:
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
}
至此, 问题解决。
sysvg1 你这个方法根本不可能实现,你仔细分析一下,他两个条码都是EAN13码制,呵呵,你一屏蔽都出不来了,所以这个功能扫描q是办不到的,呵呵,还是leidian200202说的对,有时候很笨的办法,最简单,扫描的时候,随便用手捏着第一个条码一部分就搞定了,呵呵,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)