Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用vb.net中的文本框从数据楔输入中捕获后缓冲区回车?_C#_Vb.net_Barcode Scanner_Handhelddevice_Datawedge - Fatal编程技术网

C# 如何使用vb.net中的文本框从数据楔输入中捕获后缓冲区回车?

C# 如何使用vb.net中的文本框从数据楔输入中捕获后缓冲区回车?,c#,vb.net,barcode-scanner,handhelddevice,datawedge,C#,Vb.net,Barcode Scanner,Handhelddevice,Datawedge,我有一个简单的应用程序,目前正在使用SDK,但这会导致内存问题,如果可能的话,我还希望该应用程序在多个手持扫描仪类型上运行,而不必为每个平台重做。所以我决定使用数据楔 扫描的文本从数据楔块一次读取一个字符到文本框中,问题是来自扫描仪的输入可能具有不同的长度,因此我需要捕获在后期缓冲中设置的默认[CR][LF]回车符和换行符 我尝试将字符串的最后几个字符与Chr13和Chr10进行比较,但无法实现这一点。我正在使用文本框的TextChanged属性检查该框的输入- Private Sub

我有一个简单的应用程序,目前正在使用SDK,但这会导致内存问题,如果可能的话,我还希望该应用程序在多个手持扫描仪类型上运行,而不必为每个平台重做。所以我决定使用数据楔

扫描的文本从数据楔块一次读取一个字符到文本框中,问题是来自扫描仪的输入可能具有不同的长度,因此我需要捕获在后期缓冲中设置的默认[CR][LF]回车符和换行符

我尝试将字符串的最后几个字符与Chr13和Chr10进行比较,但无法实现这一点。我正在使用文本框的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从数据楔形输入捕获不可打印字符的最佳方法是什么


谢谢。

我无法读取文本框输入端的不可打印字符。但我确实通过在表单中添加以下内容来绕过它。然后使用条形码作为我的输入字符串,因为它在末尾包含不可打印的代码

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 

您是否分析了键入多行内容时得到的输入?你应该逐字符分析,看看新行是如何标记的。它应该以某种方式进行标记…我在输入字符串时读取字符串,每次读取一个字符,如果它不在输入的末尾,我可以捕获新行[CR]chr13。如果它在结尾,它似乎根本没有被放在文本框中,所以我无法阅读它。你检查过是否有char10字符吗?检查一下。。。新的线路必须以某种方式标记。。。