我有条形码扫描仪。我需要从条形码中捕获字符串到文本框中。文本框中的最后一个单词将由条形码扫描器的多个代码组成。 我应该使用什么事件?
例如:
条形码发送值123
。
我尝试了PreviewTextInput
事件和e.Text
,但它只捕获了第一个字符1
。当我使用条形码扫描仪时,如何将所有添加的字符添加到文本框中?
答案 0 :(得分:2)
TextBox不会丢失任何东西。如果e.Text
为"1"
,则仅表示您的扫描程序逐个向TextBox
发送字符。这意味着每个角色都会添加一个事件。
你的方法真的很奇怪。 TextBox
对条形码,扫描仪一无所知。它只是显示文本。如果您的扫描仪完成扫描,为什么要问它?这是没有意义的。让穷人TextBox
独自一人。如果您想知道扫描过程何时结束,那么您应该向类添加适当的事件,这实际上是读取条形码。然后,在此事件触发后,您应该通过TextBox.Text
或使用其他方式访问结果字符串(例如,通过访问viewmodel属性)。
编辑: wpf事件的事情,就是你的控件需要“键盘焦点”,如果你想要它接收键盘事件。如果您显示MessageBox
,那么您的TextBox
会失去焦点,因此不再接收事件。再次,单独留下TextBox
。您需要编写一个专用类(即BarcodeReader
),它将为您处理键盘事件,然后在读取条形码时触发事件。您可以在BarcodeReader
内使用Keyboard类来处理按下的按钮。
答案 1 :(得分:1)
如果您在后端使用C#,那么您可以查看以下问题:Reading bar codes using wpf application