无法从richtextbox中删除前缀字符

时间:2014-02-24 11:58:23

标签: c# events barcode-scanner

我试图显示条形码扫描仪的扫描输出的特定字符串。我已将条形码扫描器配置为在每个扫描条形码的末尾放置一个$。之后我尝试在富文本框中显示已过滤的输出。我为此目的使用了按键事件。这就是现在发生的事情。我的扫描仪读取条形码开始打字,最后当扫描仪按下$ 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的开头

1 个答案:

答案 0 :(得分:0)

试试这个:

richTextBox1.Text = test.TrimStart('$'); //result displayed is $740588609843