Winforms禁用文本框上的键盘输入但保持启用文本框

场景就是这样;

我需要禁用文本框以通过键盘从用户获取输入。 但是文本框应该使用像条形码阅读器这样的设备来输入 我想拿着一个计时器并在两个击键之间取消时间(尚不清楚)。 但也许有一个属性或更聪明的算法呢?

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

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

你对使用计时的想法很好,虽然我的做法略有不同。 我将一个Timer添加到Form ,并在第一个字符输入TextBox时启动它。 计时器应设置为非常短的时间跨度,并应禁用自动重启。 当计时器熄灭时,检查TextBox是否有有效的条形码,如果有,则检查它是否有效。 无论哪种方式,之后清除文本框。

然后,对于试图使用键盘的任何人来说,他们的键入文本只会消失,而条形码扫描器(“快速键入”)仍然有效。

也许你需要跟踪’键盘按下’事件? 我不认为自动粘贴的东西会触发“键盘按下”事件。