【发布时间】:2018-05-22 10:00:05
【问题描述】:
我制作了一个带有文本框的 Windows 窗体应用程序,它使用条形码扫描仪获取任何输入值。我希望用户只使用条形码扫描仪来填充其中的任何值,并且不想使用我的常规键盘输入任何输入。
由于我的条码模拟键盘,因此禁用我的常规键盘也会使我的条码扫描仪无法工作。
我已经搜索了很多地方来实现这个,发现很少有答案建议添加一个秒表/计时器来消除在 50 毫秒内发生的所有按键,因为条形码可以在 50 毫秒内扫描所有值,但没有人能比50 毫秒。
我也尝试过这种方式,但是当我用手指随机敲击键盘键时失败了,因为某些键在 50 毫秒内触发,所以它会读出。
也尝试了下面的代码,但即使这对我来说也无法正常工作
private void rtBoxInput_KeyDown(object sender, KeyEventArgs e)
{
e.SuppressKeyPress = true;
}
请提出一些好的方法来实现这一点?
【问题讨论】:
-
我的条码器发送键就像有人在打字一样,所以这在这个场景中不起作用..它确实取决于它是如何工作的。
-
许多扫描仪支持两种操作模式,HID(键盘)模式和直接/串行/OPOS 兼容模式。根据您的要求,我建议将扫描仪操作模式更改为直接模式,使用 Microsoft POS for .NET Framework 并附加到扫描仪数据事件。然后你就完全独立于键盘输入了。
标签: c# .net wpf vb.net winforms