WPF文本框事件捕获多个字符

时间:2013-07-30 11:57:44

标签: c# wpf events textbox

我有条形码扫描仪。我需要从条形码中捕获字符串到文本框中。文本框中的最后一个单词将由条形码扫描器的多个代码组成。 我应该使用什么事件?

例如: 条形码发送值123

我尝试了PreviewTextInput事件和e.Text,但它只捕获了第一个字符1。当我使用条形码扫描仪时,如何将所有添加的字符添加到文本框中?

2 个答案:

答案 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