Honeywell Dolphin 9500 (Pocket PC 2003) Конфликты обработки событий C #?

Среда
  • Windows XP x32 Visual Studio 2005 Standard Edition
  • Honeywell Dolphin 9500 под управлением Windows Mobile 2003 (Pocket PC 2003)
    • Со встроенным сканером штрих-кода и черно-белой камерой
    • Использование их SDK, расположенного здесь .
  • .NET Compact Framework 1.0 SP3 и .NET Framework 1.1
  • Использование VC #

Цель

Я пытаюсь создать приложение, которое позволяет человеку сканировать штрих-код, а затем захватывать изображение. Эти вещи не должны происходить одновременно. Пользователь должен иметь возможность дважды проверить сканирование штрих-кода, а затем перейти к той части приложения, которая обрабатывает захват изображения.


Проблема

Номера строк ссылаются на мой код в ссылке Friendpaste в Раздел кода ниже.

У меня есть два обработчика событий: один для события декодирования из элемента управления сканера штрих-кода, а второй для вызова элемента управления захватом изображения через событие KeyDown. Элемент управления декодированием имеет свой собственный обработчик событий / обработчиков DecodeEventHandler и триггерный ключ, заданный с помощью перечисления (lns 201 и 202). Однако элемент управления изображением - нет. В его документации указано, что форма должна иметь обработчик событий KeyDown (ln 120) и перечисление ключа триггера (ln 178). После запуска приложения (без установленного обработчика событий SelectedIndexChanged [ln 76]) сканер штрих-кода работает отлично, но с переключением на вкладку (или форму, как я тоже пробовал отдельные формы), с контролем захвата изображения и нажатие кнопки триггера на устройстве (в данном случае SCAN) заставляет КПК вести себя так, как будто он все еще сканирует штрих-код (загораются красные индикаторы, горит зеленый индикатор прицеливания, издает звуковой сигнал при обнаружении штрих-кода) вместо поведения, обычно отображаемого при использовании управление изображением (нет света или белый свет, как вспышка).


Что я пробовал

  • ВАЖНО: Если я удалю элемент управления декодированием из приложения, элемент управления изображением заработает. Если я создам отдельное приложение только с элементом управления изображением, оно будет работать.
  • Я поставил точку останова в строке 210 и обнаружил, что событие KeyDown никогда не срабатывает. На этом этапе я попытался каким-то образом разделить обработчики событий или элементы управления, поэтому я представил обработчик событий SelectedIndexChanged для элемента управления вкладками и после переключения на вкладку с соответствующим элементом управления попытался удалить обработчики событий. Мне удалось удалить обработчик DecodeEvent, но по-прежнему не удалось задействовать написанный мной делегат обработчика событий KeyDown.
  • Элементы управления декодированием и изображением из SDK Honeywell имеют события «Disconnect», которые (если цитировать документацию) «Disconnect from the scan engine». Поэтому я попытался отключить и снова подключить элементы управления в зависимости от того, на какую вкладку я переключался, но это тоже не увенчалось успехом.
  • Я также где-то читал, что события формы могут иногда прерываться, если форма теряет фокус. Итак, я реализовал событие / обработчик Form.LostControl и вставил this.Focus (), чтобы вернуть фокус форме, но безрезультатно.
  • Я встречал несколько человек, предлагающих KeyPreview = true и обрабатывающих / делегирующих события в уровень формы. Похоже, что .NET Compact Framework версии 1 не реализует это, поскольку мои объекты Form не имеют члена KeyPreview.
  • В перечислении TriggerKey (пример в строке 202) есть перечисление для клавиши Enter на устройстве. Я попытался подключить его к элементу управления изображением и просканировать его до элемента управления декодером, но все равно не смог попасть в событие KeyDown.

Код

http: // friendpaste. com / 355cQOCghvPkE5YR29lthO

Я разместил код как ссылку для дружеской вставки, потому что он довольно длинный (~ 230 строк). Дайте мне знать, если я просто включу его сюда.


Нужна дополнительная информация?

Спросите, и я сделаю все возможное!

Я бы отметил этот Honeywell Dolphin 9500, но я новый пользователь.

11
задан Eric H 16 March 2011 в 14:35
поделиться