C# 从条形码扫描时,它触发与enter键关联的事件

C# 从条形码扫描时,它触发与enter键关联的事件,c#,.net,barcode,C#,.net,Barcode,我正在开发一个POS应用程序,其中条形码扫描仪读取条形码并显示条形码文本。它工作正常,但由于我使用了enter键来提交表单,因此我使用重写ProcessCmdKey()触发了该键 因此,每次我从条形码扫描仪进行扫描后,它都会触发我的自定义保存功能。如何防止条形码模仿回车键。我认为您无法做到这一点,如果这是可能的,则取决于POC扫描仪本身。因此,不同的制造商可能会有所不同 但是,您可以处理条形码文本框上的输入事件,这样将调用事件处理程序而不是保存事件。条形码扫描按“输入”并非不可避免。您正在扫描的

我正在开发一个POS应用程序,其中条形码扫描仪读取条形码并显示条形码文本。它工作正常,但由于我使用了enter键来提交表单,因此我使用重写ProcessCmdKey()触发了该键


因此,每次我从条形码扫描仪进行扫描后,它都会触发我的自定义保存功能。如何防止条形码模仿回车键。

我认为您无法做到这一点,如果这是可能的,则取决于POC扫描仪本身。因此,不同的制造商可能会有所不同


但是,您可以处理条形码文本框上的输入事件,这样将调用事件处理程序而不是保存事件。

条形码扫描按“输入”并非不可避免。您正在扫描的条形码包含输入字符,或者您的软件正在对扫描事件作出反应,或者您的扫描设备设置为在每次扫描条形码后添加“CR”

  • 要进行诊断,请打开文本编辑器并扫描一些条形码。如果每个条形码将光标移到下一行,则事件处理程序没有问题。要么你的条形码中嵌入了“CR”,要么你的扫描仪坏了
  • 将其他人的条形码扫描到文本编辑器中。如果不管你扫描的是谁的条形码,你都会前进到一个新的行,你必须找到如何配置你的扫描仪不这样做。否则,您的条形码将嵌入“CR”。修复你的条形码生成器
  • 另一方面,如果在文本编辑器中扫描自己的条形码时,它们彼此堆叠在同一行上,则是软件触发了触发器

  • 对于
    霍尼韦尔
    扫描仪,请按照以下步骤操作

    打印并扫描所需的代码。它有启用和禁用CR和LF的选项


    Ref:

    条形码是模拟enter还是键盘,它实际上在发送enter?是条形码扫描器模拟“enter”它是如何“模拟”enter的?我认为,因为您使用的是
    ProcessCmdKey()
    ,条形码扫描器是一个键盘设备,因此它实际上是在发送enter。这不是因为我使用的是ProcessCmdKey(),有些条形码扫描器配置为模拟“enter”,我也扫描了其他人的条形码并得到了相同的问题,所以我认为我的条形码生成器没有任何问题。这是条码扫描器,它的行为是这样的,我不知道如何配置我的条码扫描器不这样做。是否可以通过编码来完成?取决于扫描仪的型号。您确定使用的是文本编辑器而不是应用程序吗?其他人的条形码可能在您的应用程序中显示相同的行为,并且可能是事件处理程序。确保您在文本编辑器中使用扫描仪,而不是像Google Docs或Microsoft word这样的文字处理器。如果您的扫描设备正在添加“CR”字符,则它将卡在数据格式模式中。某些扫描仪允许您为条形码的每次扫描添加前缀或后缀(或两者)。只有当您将条形码扫描仪与一个且仅有一个应用程序一起使用时,这才是有效的操作模式,因为许多应用程序的行为不同。您应该确保签出。感谢Brian的帮助!我不想出现这样的复杂情况,所以我把我的快捷键改为“Ctrl+Enter”。这是一个很好的观点。到目前为止,我使用的大多数扫描仪都有特殊的控制条形码或其他配置设备的方法。您应该始终阅读您使用的扫描仪的文档。