1

I have barcode scanner. I need to capture string from barcode into textbox. The final word in textbox will be composed of multiple codes from barcode scanner. What event(s) should I use?

For example : Barcode sends value 123 .

I tried PreviewTextInput event and e.Text but it captured only first char 1 . How can I get all added chars to textbox when I use barcode scanner?

4

2 回答 2

2

TextBox 不会丢失任何内容。如果e.Text"1",则仅表示您的扫描仪将字符TextBox一一发送。这意味着每个添加的角色都会获得一个事件。

你的方法真的很奇怪。TextBox对条形码、扫描仪一无所知。等等。它只是显示文本。如果您的扫描仪完成扫描,您为什么要问它?这是没有意义的。放过穷人TextBox吧。如果您想知道扫描过程何时完成,那么您应该在类中添加一个适当的事件,该事件实际上读取条形码。然后,在此事件触发后,您应该通过TextBox.Text或使用其他方式(例如通过访问 viewmodel 属性)访问结果字符串。

编辑: wpf 事件的问题是,如果您希望它接收键盘事件,您的控件需要具有“键盘焦点”。如果您显示 a,MessageBox那么您将TextBox失去焦点,因此不再接收事件。再次,留下一个TextBox人。您需要编写一个专门的类(即BarcodeReader)来为您处理键盘事件,然后在读取条形码时触发一个事件。您可以使用Keyboard内部的类BarcodeReader来处理按下的按钮。

于 2013-07-30T12:41:14.220 回答
1

如果您在后端使用 C#,那么您可以看看这个问题:Reading bar codes using wpf application

于 2013-07-30T12:09:52.423 回答