c# - Winforms 在文本框上禁用键盘输入但保持文本框启用

标签 c# .net winforms

场景是这样的;

我需要禁用文本框以通过键盘接受用户的输入。但是文本框应该使用诸如条形码阅读器之类的设备进行输入。我想持有一个计时器并记录两次击键之间的时间跨度(尚不清楚)。但也许对此有一个属性或更智能的算法?

附注它是一个 Windows 窗体应用程序。

最佳答案

您说您需要支持通常模拟键盘的任何条形码阅读器,因此可能没有一种简单的方法以编程方式区分来自键盘和条形码阅读器的输入。

你关于使用时间的想法是好的,尽管我会做一些稍微不同的事情。我将向 Form 添加一个 Timer 并在第一个字符输入到 TextBox 时启动它。计时器应设置为非常短的时间跨度,并且应禁用自动重启。当计时器关闭时,检查 TextBox 是否有有效的条形码,如果有,则处理它。无论哪种方式,之后都要清除文本框。

对于任何试图使用键盘的人来说,他们键入的文本就会消失,而条形码扫描仪(“键入”速度非常快)仍然可以工作。

关于c# - Winforms 在文本框上禁用键盘输入但保持文本框启用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49586133/

相关文章:

c# - 无法消除 Windows 8 Metro 'ListView' 中 Tiles 之间的填充/边距

c# - WPF 中带有格式化文本的可选 TextBlock 或 TextBox

c# - unity Prefab The name `mainCamera' 在当前上下文中不存在

c# - 用 APIController 补充 [FromUri] 序列化

c# - 使用 JSON 将数据存储在文本文件中

c# - 使用 TreeNode 作为用户设置

C# Windows 窗体倒计时器

.net 即时解密大文件

c# - 为什么 Reflection 的 SetValue 会抛出异常?

面向.NET Core 3.1的C++/CLI