Как зафиксировать возврат каретки после ввода данных с помощью ввода данных с помощью текстового поля в vb.net?

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

Отсканированный текст считывается в текстовое поле (по одному символу за раз) из клина данных, проблема в том, что вход со сканера может быть различной длины, поэтому мне нужно захватить значение по умолчанию [CR][LF] (каретка возврат и перевод строки), которые задаются в сообщении.

Я попытался сравнить последние символы строки с Chr(13) и Chr(10), но не смог заставить это работать. Я использую свойство TextChanged текстового поля для проверки ввода в поле -

     Private Sub tbx_Scan_TextChanged() Handles TBX_Scan.TextChanged

И хотите вернуть действительный результат из этой функции, если найден конец строки

     Public Function CheckLocationInput(ByVal inputString As String) As String

      If (Len(inputString) >= 5) And (Len(inputString) <= 40) Then
          If inputString.Contains(Environment.NewLine) Then
              Return "VALID"  'Opens the Item Input Screen
          End If

Но символы [CR] и [LF], похоже, не вводятся в текстовое поле или, по крайней мере, не видны для чтения. В основном все, что я пытаюсь сделать, это проверить конец ввода данных клина. Я могу сделать это, если я изменю post-amble на строку, например, '~E%'

Я знаю аргументы против этого, но это должно быть простое приложение, поэтому я буду признателен, что нет, вы должны использовать SDK.

Итак, каков наилучший способ захвата непечатаемых символов с использованием VB.net и / или C# из ввода данных клина?

Спасибо.

1 ответ

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

Imports System.Text
  Public Class frm

Private Barcode As StringBuilder

Private Sub frm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.KeyPreview = True
    Me.TBX_Scan.Focus()
    Barcode = New StringBuilder()
End Sub

Private Sub frm_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
    Barcode.Append(e.KeyChar)
End Sub 
Другие вопросы по тегам