我已经审查了数十个选项/解决方案,但我无法让它发挥作用。
简单地说,我有一个 VB.Net Winform,它有一个文本框,用户可以在其中手动输入文本,或者他们可以使用 USB 连接的条形码扫描仪(模拟键盘)来捕获 UPC。
我想要做的是让条形码输入进入文本框,无论哪个控件具有当前焦点。
我已将表单的 KeyPreview 属性设置为 True。
然后我在 frmMain_Keypress 事件中添加了一些代码,如下所示:
If Me.txtSearch.Focused = False Then
txtSearch.Focus()
End If
非常简单……它确实有效,有点……
如果 txtSearch 已获得焦点,则整个条形码/UPC 将输入到文本框中。
但是,如果另一个控件具有焦点,则条形码/UPC 的每个字符(第一个字符除外)都会输入到文本框中。它总是去掉第一个字符。
我在上面的代码中放置了一些调试语句,以查看是否正在读取初始字符并且正在读取它......只是没有发送到文本框。
我已经看到了很多其他非常复杂的条码扫描解决方案,看起来我真的很接近一些非常简单的东西,但是,如果它去掉了主角,显然它就行不通了。
希望我错过了一些非常明显的东西。