2014-02-24 5 views
0

바코드 스캐너의 스캔 출력을 특정 문자열로 표시하려고합니다. 바코드 스캐너를 구성하여 스캔 한 모든 바코드 끝에 $를 붙입니다. 그런 다음 필터링 된 출력을 서식있는 텍스트 상자에 표시하려고합니다. 이 목적으로 keypress 이벤트를 사용하고 있습니다. 이것은 지금 일어나는 일입니다. 내 스캐너가 바코드를 읽는 동안 타이핑이 시작되고 스캐너가 $ sign을 누르면 $ asci가 트리거되고있는 키 누르기 이벤트가 발생하고 최종 결과를 richtextbox에 표시하기 위해 스캐너 출력을 필터링합니다. 그러나 내가 변수 문자열에서 텍스트 상자에서 텍스트를 가져올 때 동일한 이벤트 함수에 접두사가 붙은 $ 기호가 표시되지 않습니다. 내 코드는 다음과 같습니다. 의견을 참조하십시오. 코드 줄을 사용하여 디버깅 된 출력을 표시하도록 코드를 업데이트했습니다.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!"); 
     } 

    } 
} 

왜 그렇게 발생합니까 ??? 이걸 어떻게 해결할 수 있을까 ?? 나는 $ 기호를 제거하고 싶지만 그것이하여 RichTextBox

답변

0

의 시작에 존재하지만 코드는이 시도를 감지되지 않습니다

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

점은이 $ 기호를 따기되지이다. 시도했다. Isnt working! – user3345361

+0

은 디버깅 중에 richtextbox.text에 $ 기호를 표시하지 않지만 프로그램에 표시하면 – user3345361

+0

@ user3345361 :이 문을 사용하여 $ sign을 확인합니까? if if (e.KeyChar == (char) 36)? –

관련 문제