Reputation: 986
I have a form which I read data to textbox from a barcode reader. and there are some codded barcodes like this
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.
so I want to write data to true textboxes from firs char (W, U, M) in form_KeyDown() event or one different.
( true textboxes mean if user read a barcode which start with W key let the program write the barcode data to "work tekxtbox" or if he read abarcode which start with U program will write the barcode data to user textbox etc...
) I wanna make this let the codes select its own textboxes. what is the way?
note: if I use textbox1.Text += e.KeyData.ToString();
the output is : ShiftKey, ShiftW, ShiftD1D2D3D4D6ShiftKey, ShiftS, ShiftD2 W12346S2
for W12346S2
Upvotes: 0
Views: 615
Reputation: 48736
Can't you just read in the text and have something like this:
string FirstChar = BarcodeString.Substring(0,1);
if (FirstChar.Equals("W"))
WorkTextBox.Text = BarcodeString;
if (FirstChar.Equals("U"))
UserTextBox.Text = BarcodeString;
Upvotes: 1
Reputation: 81347
Can input from your barcode reader be distinguished from typed keystrokes? If so, I would recommend that incoming barcodes not be handled by the keystroke handler, but instead use their own special handler which will wait until it has scanned an entire barcodes and then stick it in an appropriate box.
If the input from your reader looks like keystrokes, things are apt to be a little more tricky. You may want to intercept all keystrokes going to your form, look at each keystroke, determine whether it looks like it might be part of a barcode, and buffer it if so. Any time you determine that the buffered data isn't part of a barcode, either because of following characters or because a timer expires, fire your own keystroke events to re-issue the keystrokes. Ensuring that all keystrokes are handled in order may be a little tricky, but hopefully not too bad. It will probably be easier to prevent keystrokes from the barcode reader from going into an inappropriate field, than to provide a good user experience after they do.
Upvotes: 0