ahmed_sa Ответов: 3

Как удалить фокус на кнопке при считывании данных со сканера штрих-кода


Мне нужно считывать данные со сканера штрих-кодов в форму windows .

я могу читать данные успешно без каких-либо проблем

моя проблема в том, что если я помещаю кнопку в форму, она фокусируется на ней, а не на чтении данных

так что как поставить кнопку и убрать фокус на ней это на самом деле моя проблема мне нужно

решать.

public partial class Form1 : Form
    {
        DateTime _lastKeystroke = new DateTime(0);
        List<char> _barcode = new List<char>(10);
        public Form1()
        {
            InitializeComponent();
         
        }

        
        private void Form1_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;

            // process barcode
            if (e.KeyChar == 13 && _barcode.Count > 0)
            {
                string msg = new String(_barcode.ToArray());
                label1.Text = msg;
                //queryData(msg);
                _barcode.Clear();
            }
        }
    }
}


Что я уже пробовал:

how to remove focus on button when reading data from scanner barcode

3 Ответов

Рейтинг:
2

DiamondKid

Просто сфокусируйте его в текстовом поле для ввода сканера штрих-кодов. Затем в свойстве AcceptButton формы установите для него значение Button1.


Рейтинг:
0

Dave Kreskowiak

Вы никогда не "снимаете" фокус с чего-либо. Вы должны сосредоточиться на каком-то другом контроле.

Поскольку большинство сканеров штрих-кодов - это просто эмуляторы клавиатуры (клин клавиатуры), все, что они сканируют, просто "набирается" в любой элемент управления, находящийся в фокусе в данный момент.

Поэтому, как правило, вы программируете сканер штрих-кода, чтобы добавить последовательность внимания к штрих-коду. Свойство KeyPreview вашей формы должно быть включено, чтобы ключевые события кода формы могли получить штрих-код раньше, чем это сделает элемент управления назначения. Обработчик событий Forms key следит за добавленной последовательностью символов. Когда он видит последовательность, вы можете переместить фокус на соответствующий элемент управления, обычно текстовое поле, и остальные нажатия клавиш, поступающие от сканера штрих-кодов, окажутся в этом элементе управления.


Рейтинг:
0

Graeme_Grant

textBox1.Focus();