Как зафиксировать возврат каретки после ввода данных с помощью ввода данных с помощью текстового поля в 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