我试图显示条形码扫描仪的扫描输出的特定字符串。我已将条形码扫描器配置为在每个扫描条形码的末尾放置一个$。之后我尝试在富文本框中显示已过滤的输出。我为此目的使用了按键事件。这就是现在发生的事情。我的扫描仪读取条形码开始打字,最后当扫描仪按下$ sign时,触发$ asci的按键事件,我在那里过滤我的扫描仪输出,以显示richtextbox中的最终结果。但是当我调试时,当我从变量字符串中的文本框中获取文本时,前缀$符号未显示在同一事件函数中。 这是我的代码:请参阅评论。我已更新我的代码以显示带代码行的调试输出
private void CheckEnter(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar == (char)36)
{
String newstring;
var str = richTextBox1.Text;
int numlines = str.Split('\n').Length;
var strArr = str.Split(Environment.NewLine.ToCharArray());
if (numlines > 2)
{
if (strArr[2].Length == 6)
{
var final = strArr[1];
newstring = final.Remove(final.Length - 2, 2);
richTextBox1.Text = newstring;
String test = richTextBox1.Text; ////shows 3740588609843 not $3740588609843
int len = richTextBox1.Text.Length;
// test = test.Remove(test.Length - 14, 1); //removes 3 rather than $
richTextBox1.Text = test; //result displayed is $740588609843
cnic = newstring;
}
if (strArr[3].Length == 6)
{
var final = strArr[2];
richTextBox1.Text = final;
cnic = final;
}
}
if (numlines < 3)
{
if (strArr[0].Length == 25)
{
var final = strArr[0];
newstring = final.Remove(0, 12);
richTextBox1.Text = newstring;
cnic = newstring;
}
}
if (cnic == null)
{
MessageBox.Show("Please scan the id card through scanner again!");
}
}
}
为什么会这样呢???我怎么能纠正这个?我想删除$ sign但是代码没有检测到它虽然它存在于richtextbox的开头
答案 0 :(得分:0)
试试这个:
richTextBox1.Text = test.TrimStart('$'); //result displayed is $740588609843