我有两个设备(KeyBoard和BarCodeScanner)和2个文本框(文本框1和文本框2).
现在我想限制用户他只能在文本框1中使用键盘,在文本框2中使用条形码扫描器.
这怎么可能在C#中?
解决方法:
你应该看一下:Read data from Bar Code Scanner in .net (C#) windows application!
因此,您的扫描仪可能会发送特殊字符以帮助您识别输入来自扫描仪,或者它可能为您提供了一个可用于检测此类事件的附加库.
让我们假设扫描仪与键盘的行为完全相同,没有任何特殊字符,以帮助您知道它来自扫描仪,并且没有任何来自您可以使用的制造商网站的额外库.
然后你可以使用的是:测量第二个文本框的KeyDown事件中的打字速度.
我怀疑扫描仪会立即输入代码,因此您可以测量出巨大的打字速度.
然后,如果打字速度大于阈值(例如,人类世界速度记录大约每分钟1000个字符),则删除输入的文本.
这很hacky,但我没有更好的主意.