Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文本框输入,键盘禁用,条形码扫描仪保留_C#_Keypress_Barcode Scanner_Windows Forms Designer_Disabled Input - Fatal编程技术网

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

C# 文本框输入,键盘禁用,条形码扫描仪保留,c#,keypress,barcode-scanner,windows-forms-designer,disabled-input,C#,Keypress,Barcode Scanner,Windows Forms Designer,Disabled Input,我制作了一个带有文本框的Windows窗体应用程序。我将强制用户使用条形码扫描仪,因此应禁用键盘输入。KeyPressed事件不起作用,因为也禁用了条形码扫描仪的输入 我想也许我可以在TextChanged事件上设置一个计时器,但我真的不知道它是如何工作的 有人有什么好主意吗?根据您的描述,我假设您的条形码扫描仪是HID条形码扫描仪。如果是这样,这里没有简单的答案,因为条形码扫描器的功能与键盘完全相同。禁用键盘输入将禁用条形码扫描仪 我以前做过,我知道有几种解决方案: 使用非HID条形码扫描仪的

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

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


有人有什么好主意吗?

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

我以前做过,我知道有几种解决方案:

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

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

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

    我以前做过,我知道有几种解决方案:

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

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

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

    我以前做过,我知道有几种解决方案:

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

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

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

    我以前做过,我知道有几种解决方案:

  • 使用非HID条形码扫描仪的条形码扫描仪。连载,或者类似的东西
  • 将条形码扫描仪配置为在条形码扫描开始和结束时发送特殊字符。(如果您有针对特定型号条形码扫描仪的手册,则可以执行此操作。)编写按键事件以侦听这些特殊字符,作为从条形码扫描仪获取数据的信号。当它看到它们时,启用和禁用文本框
  • 使用Windows API调用直接与条形码扫描仪通信。这需要了解条形码sca的VID和PID