【解決方法】evtkeyupevenを使用した場合、バーコードスキャナはコードを10進数(3桁)にデコードします

プログラミングQA

[ad_1]

バーコードスキャナ “データ ロジック スキャナー クイック スキャン qd2430 ” テキストボックスにフォーカスするとコードをテキスト形式で読み取りますが、使用するとコードを 10 進数 (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 イベントにバインドすることで、これを自分自身で困難にしています。 これが TextBox の場合は、Enter キーを押したときに Text プロパティを確認するだけで、そこにバーコードが含まれます。

KeyUp イベントを使用する必要がある場合は、enter キーのチェックを除く evtKeyUpEvent のコードの大部分を削除し、KeysConverter を使用して KeyCode から文字列に変換します。

[ad_2]

コメント

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