文本框输入,键盘禁用,条形码扫描仪保留

2024-02-03

我制作了一个带有文本框的 Windows 窗体应用程序。我将强制用户使用条形码扫描仪,因此应该禁用键盘输入。 KeyPressed 事件不起作用,因为也禁用了来自条形码扫描仪的输入。

我想也许我可以在 TextChanged 事件上设置一个计时器,但我真的不知道它是如何工作的。

有人有好主意吗?


根据您的描述,我假设您的条码扫描器是 HID 条码扫描器。如果是这样,这里就没有简单的答案,因为条形码扫描仪的功能与键盘完全相同。禁用键盘输入将禁用条形码扫描仪。

我以前曾经这样做过,我知道有一些解决方案:

  1. 使用非 HID 条形码扫描仪的条形码扫描仪。例如:连续剧或类似的东西。
  2. 配置条形码扫描仪以在条形码扫描的开始和结束时发送特殊字符。 (如果您有特定型号的条形码扫描仪的手册,则可以执行此操作。)编写 KeyPressed 事件以侦听这些特殊字符,作为它正在从条形码扫描仪获取数据的信号。当它看到它们时,启用和禁用文本框。
  3. 使用 Windows API 调用直接与条形码扫描仪通信。这需要了解条码扫描仪的 VID 和 PID,以及 GetRawInputDeviceInfo、GetRawInputData 和 RegisterRawInputDevices 等 API 的一些详细知识。这是非常强大的,因为您可以从应用程序中的任何位置接收条形码输入,但它非常复杂。

但是,有一点需要注意:您可能根本不想禁用该文本框。如果条码损坏,扫描仪无法读取怎么办?您总是希望用户能够手动输入条形码。下次您在商店收银时,请注意总有一种方法可以手动输入条形码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

文本框输入,键盘禁用,条形码扫描仪保留 的相关文章

随机推荐

  • 如何在 Visual Studio 中复制错误消息

    我刚开始使用 C 和 VS 如何复制我的错误消息 在下图中 我想复制 System Net HttpWebRequest 在菜单栏中选择 查看 并启用 错误列表 默认情况下 屏幕底部会弹出包含所有错误的错误列表 并且可以复制消息
  • R6010 abort() 已被调用

    我从这里读到了有关 substr 的内容 http www cplusplus com reference string string substr http www cplusplus com reference string strin
  • 如何让 div 元素垂直固定?

    我想要垂直但不水平固定的 div 元素 目前 我正在使用 jQuery 来更新位置top每次发生滚动时 但我不希望它看到移动 我希望它能固定不动 有没有办法做到这一点 div A div B 向下滚动 div A div B
  • 节点静态示例

    我一直在用头撞墙试图找出这段代码出了什么问题 我直接从node static github存储库示例中复制了它 但它似乎不起作用 我所做的唯一修改是公共文件的路径 以前是 public 在我的公共文件夹中 我有一个index html 但是
  • VSTS - 从发布视图中取消升级软件包版本

    我们的项目当前使用 VSTS Visual Studio Team Services 包在项目之间共享包 我们想采用发布视图 https learn microsoft com en us vsts package feeds views
  • 如何包含“resources”文件夹中的js文件(Laravel 5.5)

    我使用以下代码来包含我的 js 文件 Meta addJs admin js resources assets admin js admin app js 该文件存在 但在控制台中我看到状态 404 如果我将文件移至 公共 文件夹 一切正常
  • 升级 Xampp 以运行 php 7

    在阅读了几个关于如何将 xampp 升级到较新版本的 php 的问题后 我开始将我的版本升级到版本 7 因为我想学习 严格类型提示 我从下载了 php 7官方网站 http windows php net download 我将此下载文件夹
  • CVS:列出标签之间添加/删除的所有文件

    有没有办法列出在两个选定标签之间添加 删除到存储库的所有文件 我尝试了 cvs 历史记录 但它只显示历史记录 因为特定标签最后添加到历史文件中 命令行解决方案会更好 您可以使用cvs rdiff s r
  • 解决粘性问题的方法

    当一个软件卡住 对用户输入没有响应并且不更新其显示时 如何准确确定它正在做什么 我尝试过 oprofile 它记录了正在执行的函数 但它没有给我足够的线索 它会计算运行期间发生的所有事情 而我只需要查看样本程序卡住时发生的情况 问题可能涉及
  • 多个 SSL 域连接到一个 Azure 云服务站点

    我们有一个在 Windows Azure 云服务上运行的 Web 应用程序 地址为ourapp cloudapp net 我们创建了一条 CName 记录my ourapp com指向此云服务 该域受 SSL 保护 我们现在需要允许不同的域
  • 如何在 Inno Setup 中安装之前更改 defaultdirname 参数?

    我想更改 ssInstall 部分中的 defaultdirname 参数 我怎样才能做到这一点 有没有设置 Setup 参数的功能 以下全局对象可用 TMainForm 类型的 MainForm TWizardForm 类型的 Wizar
  • Sharepoint 字段尚未在 C# 中初始化

    我正在编写一个代码 它将遍历共享点列表中的每个列表项并查找空字段 如果发现空字段 则会通过电子邮件通知负责该列表项的人员 我在线路中遇到错误val oListItem field Title 其中指出 属性或字段尚未初始化 尚未请求或请求尚
  • EMR 和 S3 上的 Delta Lake (OSS) 表 - Vacuum 需要很长时间且没有作业

    我正在使用开源版本将大量数据写入 Databricks Delta Lake 在 AWS EMR 上运行 并以 S3 作为存储层 我正在使用 EMRFS 为了提高性能 我经常压缩和清理桌子 如下所示 spark read format de
  • 如何更改android溢出按钮上弹出菜单的位置?

    我只是想实现与 Gmail 应用程序中的弹出菜单相同的东西 固定在右上角的溢出按钮上 为此 我使用了与 Android 谷歌教程相同的代码Android 弹出菜单 http developer android com guide topic
  • 在 Magento 中显示客户属于哪个组

    我在 Magento 中设置了几个客户组 常规 启用采购订单 我想知道这是否很容易在客户的帐户区域中显示给客户 以便他们可以看到自己属于哪个组 也许 MagePsycho 从旧版本中得到它 但在 1 5 上你需要更改组模型 Check Cu
  • 收到错误:找不到 id 为“id”的列

    我试图用数据填充垫表 但收到错误 Could not find column with id id 当我尝试这样做时 这就是我在组件文件中完成的方法 export class ListAllTrucksComponent displayed
  • Android Spinner 错误:android.view.WindowManager$BadTokenException:无法添加窗口

    我想使用 String 或 ArrayList 设置微调器值 我已经在其他活动中完成了微调器 工作正常 在此活动中 选项卡活动组中的另一个选项卡活动 我的问题是将值设置为微调器 微调器显示正确 这意味着加载活动时 工作正常 但当我单击 微调
  • 有没有办法通过多个用户名获取用户[Keycloak Admin Rest API]

    我是这个 keycloak 用户管理的新手 基本上我想在用户名字段上使用 IN 条件来获取用户 很不幸的是 不行 请参阅 REST API 文档 https www keycloak org docs api 15 0 rest api i
  • 创建具有特定长度和宽度的二维数组[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 见标题 我基本上需要它来创建一个可以
  • 文本框输入,键盘禁用,条形码扫描仪保留

    我制作了一个带有文本框的 Windows 窗体应用程序 我将强制用户使用条形码扫描仪 因此应该禁用键盘输入 KeyPressed 事件不起作用 因为也禁用了来自条形码扫描仪的输入 我想也许我可以在 TextChanged 事件上设置一个计时