扫描枪扫了之后,会出现2012288-20-008这一串,
然后我会赋值到一个textbox上面,然后分成三部分
但是其实2出现的时候就触发事件了,所以array[1],[2]都是没传到数据的,请问怎么办?
private void textBox12_TextChanged(object sender, EventArgs e)
{
string ordernumber = textBox12.Text;
string[] Array = ordernumber.Split('-');
textBox3.Text = Array[0];
textBox4.Text = Array[1];
textBox5.Text = Array[2];
}
3种方式
1.找到扫描枪说明书,按说明书设置在结尾出附加回车(通常的扫描枪产品都有这个功能),这样设置后你可以判定结尾是否是回车来判定是否输入完毕
2.扫描枪是程序输入,动作比人快,一般字符触发频率小于100ms,所以可以通过这种物理特征去判定,如果100ms内连续触发事件认为是机器输入,等他不连续触发超时(100ms)在认为是输入完毕
3.如果扫描枪是HiD设备,则可以通过hid sdk去通讯,那么他遵循hid协议规则,我们就可以不通过文本框判定,直接走hid协议去获取数据
如果扫码枪协议没提供 结束 字符事件,你可以自己根据时间来判断 扫码是否完成,完成后再进行分割。
比如 在事件内先判断 textbox12.Test 是否 能分割出三个 字符串 。
如果可以出现 ,则等待一定的时间 再进行 读取 textbox12.Test 进行分割字符