Máy quét mã vạch giải mã mã thành số thập phân (3 chữ số) nếu tôi sử dụng evtkeyupeven

lập trình


Máy quét mã vạch “máy quét logic dữ liệu quét nhanh qd2430 ” đọc mã ở định dạng văn bản khi tôi tập trung vào bất kỳ hộp văn bản nào nhưng nó giải mã mã thành Số thập phân (3 chữ số) nếu tôi sử dụng evtKeyUpSự kiện

vì vậy, nó chuyển đổi mã này “33378755971180” ĐẾN “051 051 051 055 056 055 053 053 057 055 049 049 056 048

Những gì tôi đã thử:

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);
   }

Giải pháp 1

Có vẻ như đầu đọc mã vạch đang hoạt động ở chế độ bàn phím nêm. Điều này có nghĩa là nó mô phỏng bàn phím.

Thứ nhất, bạn đang tự gây khó khăn cho chính mình bằng cách ràng buộc với sự kiện KeyUp. Nếu đây là TextBox thì chỉ cần nhìn vào thuộc tính Text khi nhấn phím enter và sẽ có mã vạch của bạn trong đó.

Nếu bạn phải sử dụng sự kiện KeyUp thì hãy xóa hầu hết mã trong evtKeyUpEvent, ngoại trừ việc kiểm tra phím enter và sử dụng KeysConverter để chuyển đổi từ KeyCode sang chuỗi.

コメント

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