我有一个表单,我从条形码阅读器读取数据到文本框。 并且有一些像这样的编码条码
W12346S1 is first step of a work
W12346S2 is second step of a work
W12346S3 is third step of a work
...
U123 is a user he read his code to make process
M456 is a machine user do the work on this machine.
所以我想在form_KeyDown()事件或其他一个事件中从firs char(W,U,M)向真正的文本框写入数据。
( 真正的文本框意味着如果用户读取以W键开头的条形码,让程序将条形码数据写入“work tekxtbox”,或者如果他读取以U程序开头的abarcode将条形码数据写入用户文本框等...
) 我想让代码选择自己的文本框。是什么方式?
注意:如果我使用textbox1.Text + = e.KeyData.ToString();
输出为:ShiftKey,ShiftW,ShiftD1D2D3D4D6ShiftKey,ShiftS,ShiftD2 W12346S2
对于W12346S2
答案 0 :(得分:1)
你不能只阅读文字并有类似的内容:
string FirstChar = BarcodeString.Substring(0,1);
if (FirstChar.Equals("W"))
WorkTextBox.Text = BarcodeString;
if (FirstChar.Equals("U"))
UserTextBox.Text = BarcodeString;
答案 1 :(得分:0)
条形码阅读器的输入可以与键入的键击区分开吗?如果是这样,我建议输入的条形码不要由击键处理程序处理,而是使用他们自己的特殊处理程序,它将等待它扫描整个条形码然后将其粘贴在适当的框中。
如果您的阅读器的输入看起来像击键,那么事情往往会变得有点棘手。您可能希望拦截转到表单的所有击键,查看每个击键,确定它是否可能是条形码的一部分,如果是,则缓冲它。每当您确定缓冲数据不是条形码的一部分时,无论是由于后续字符还是因为计时器到期,都会触发您自己的击键事件以重新发出击键。确保按顺序处理所有击键可能有点棘手,但希望不是太糟糕。防止条形码阅读器的击键进入不适当的领域可能更容易,而不是提供良好的用户体验。