谁用过扫条形码的那个机器,问个接受的问题
现在是这么回事。我用一个textbox接受我每次扫到的值,在textBox1_TextChanged 里处理接受到的值,可是现在我发现一个问题,如果条形码是6 921317 905370 ,观察几次发现,扫条形码的机器是一位一位的扫,可textBox1_TextChanged 事件在扫进来一位马上就触发。例如是这样的
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
MessageBox.Show(this.textBox1.Text);
}
我要想扫6 921317 905370
出现的结果是只显示个6
我也想过通过记他的位数,然后垒加 ,可是现在项目的条形码位数不确定!!
我想是不能找个其他控件一次性全部接受到。不知道那位做过,并且有好的经验,请说下。谢谢
------解决方案--------------------不必TextChanged , 扫条形码的机器最后会有一个回车的, 你识别它的回车就可以了,
这样一来, 所有的数据都能查出来,
------解决方案--------------------每一次事件进来,都去改写Textbox,把值改为“旧值+新值”并且纪录下最后一次修改的时间,如果两次纪录时间大于0.1秒,就刷新Textbox重头开始记录。
这样看看行不行
------解决方案--------------------主要思想:扫描器会模拟键盘将条码输入,每得到一个字符都将触发一次字符改变。在扫描结束,将产生一个回车符。当收到这个字符时,才应该去处理。具体代码如下:
事件定义:
this.txtItemCode.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtBarCode_KeyPress);
private void txtBarCode_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar == '\r ')
{
// 你的处理,你的条码在文本框中txtBarCode.Text
}
}
------解决方案--------------------用Keypress事件处理就好了,回车的判断为 e.Keychar = '13 ' ...就好了