ahmed_sa Ответов: 1

Сканер штрих кода возвращает только первую цифру только почему и как вернуть полный номер


Problem

Barcode scanner return only first digit only why and How to Return Full Number as 6221133347389 

6221133347389 return 6
4716201020476 return 4

screen shoot debug
<a href="http://www.mediafire.com/view/1bjtifib1kq3ahg/Capture.JPG/file">File sharing and storage made simple</a>[<a href="http://www.mediafire.com/view/1bjtifib1kq3ahg/Capture.JPG/file" target="_blank" title="New Window">^</a>]

Barcode read 2d for Items 

Barcode Device DataLogic Lite QW2100

MODEL QY2100

CLASS QY2120-BK

S/N G17079019

when reading  ItemCode '       6294004851032' by barcode scanner it return 6 only as first digit

why it return first digit only 

i need to return full number .

What I have tried:

<pre>DateTime _lastKeystroke = new DateTime(0);
    List<char> _barcode = new List<char>(20);
public PosFrm()
    {


        InitializeComponent();
        this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.PosFrm_KeyPress);

    }
private void PosFrm_KeyPress(object sender, KeyPressEventArgs e)
    {
        TimeSpan elapsed = (DateTime.Now - _lastKeystroke);
        if (elapsed.TotalMilliseconds > 100)
            _barcode.Clear();

        // record keystroke & timestamp
        _barcode.Add(e.KeyChar);
        _lastKeystroke = DateTime.Now;
        //		e.KeyChar	52 '4'	char

        // process barcode
        if (e.KeyChar == 13 && _barcode.Count > 0)
        {


            string msg = new String(_barcode.ToArray());
            MessageBox.Show(msg);
            _barcode.Clear();
        }
    }

1 Ответов

Рейтинг:
2

OriginalGriff

Мы не можем сказать - у нас нет вашего сканера, и мы не можем запустить ваш код в результате.

Так что все будет зависеть от тебя.
К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик.
Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Если это не поможет (а это может и не помочь, потому что ваш сканер генерирует нажатия клавиш, которые не все попадут в ваше приложение, как только отладчик достигнет точки останова), вам придется вернуться к старым методам и начать "перчить" свой код Debug.WriteLine заявления, чтобы дать вам возможность "следить" за тем, что именно произошло, когда вы сканировали код.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!