यदि मैंने evtkeyupeven का उपयोग किया है तो बारकोड स्कैनर कोड को दशमलव (3-अंकीय) में डिकोड करता है

प्रोग्रामिंग


बारकोड स्कैनर “डेटा लॉजिक स्कैनर त्वरित स्कैन qd2430 “जब मैं किसी टेक्स्टबॉक्स पर ध्यान केंद्रित करता हूं तो कोड को टेक्स्ट फॉर्मेट में पढ़ता हूं, लेकिन अगर मैं उपयोग करता हूं तो यह कोड को दशमलव (3-अंकीय) में डिकोड करता है evtKeyUpEvent

इसलिए, यह इस कोड को परिवर्तित कर देता है”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 में से अधिकांश कोड हटा दें, एंटर कुंजी की जांच करने के अलावा और KeyCode से स्ट्रिंग में कनवर्ट करने के लिए KeysConverter का उपयोग करें।

コメント

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