如果我使用 evtkeyupeven,条码扫描仪会将代码解码为十进制(3 位数字)

编程


扫码机 ”数据逻辑扫描仪快速扫描qd2430 “当我聚焦任何文本框时以文本格式读取代码,但如果我使用,它会将代码解码为十进制(3位数字) evtKeyUp事件

所以,它转换这个代码“33378755971180“ 到 ”051 051 051 055 056 055 053 053 057 055 049 049 056 048

我尝试过的:

private string BarCode = "";
   private void evtKeyUpEvent(object sender, KeyEventArgs e)

   {
       if (Keys.NumPad0 <= e.KeyCode && e.KeyCode <= Keys.NumPad9)
       {
           BuildBarCode((e.KeyCode - Keys.NumPad0).ToString());
       }
       else if (Keys.D0 <= e.KeyCode && e.KeyCode <= Keys.D9)
       {

           BuildBarCode((e.KeyCode - Keys.D0).ToString());
       }
       if (65 <= e.KeyValue && e.KeyValue <= 90)
       {
           BuildBarCode((e.KeyCode).ToString());
       }
       else if (Keys.ShiftKey == e.KeyCode)
       {
       }
       else if (Keys.OemPeriod == e.KeyCode)
       {
           BuildBarCode(".");
       }
       else if (Keys.Multiply == e.KeyCode)
       {
           BuildBarCode("*");
       }
       else if (Keys.Add == e.KeyCode)
       {
           BuildBarCode("+");
       }
       else if (Keys.Separator == e.KeyCode)
       {
           BuildBarCode("|");
       }
       else if (Keys.Subtract == e.KeyCode)
       {
           BuildBarCode("-");
       }
       else if (Keys.Divide == e.KeyCode)
       {
           BuildBarCode("/");
       }
       else if (Keys.OemBackslash == e.KeyCode)
       {
           BuildBarCode(@"\");
       }
       else if (Keys.Separator == e.KeyCode)
       {
           BuildBarCode(",");
       }
       else if (Keys.OemMinus == e.KeyCode)
       {
           BuildBarCode("-");
       }

       else if (Keys.Space == e.KeyCode)
       {
           BuildBarCode(" ");
       }
       else if (Keys.OemCloseBrackets == e.KeyCode)
       {
           BuildBarCode(")");
       }
       else if (Keys.OemOpenBrackets == e.KeyCode)
       {
           BuildBarCode("(");
       }
       else if (Keys.Oemtilde == e.KeyCode)
       {
           BuildBarCode("~");
       }

       else if (Keys.Oemcomma == e.KeyCode)
       {
           BuildBarCode(",");
       }
       else if (Keys.OemSemicolon == e.KeyCode)
       {
           BuildBarCode(";");
       }
       else if (Keys.OemSemicolon == e.KeyCode)
       {
           BuildBarCode(";");
       }


       else if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return)
       {
           updateUIBarCode(BarCode);
       }
   }
   private void BuildBarCode(string value)
   {
       BarCode = string.Concat(BarCode, value);
   }
   public void updateUIBarCode(string i)
   {
       AddNewRowWithCode(i);
   }

解决方案1

看起来条形码读取器正在键盘楔模式下工作。 这意味着它模拟键盘。

首先,您通过绑定 KeyUp 事件给自己带来了困难。 如果这是一个文本框,那么只需在按下回车键时查看文本属性,其中就会包含您的条形码。

如果必须使用 KeyUp 事件,则删除 evtKeyUpEvent 中的大部分代码,除了检查 Enter 键并使用 KeysConverter 将 KeyCode 转换为字符串之外。

コメント

タイトルとURLをコピーしました