바코드 스캐너의 스캔 출력을 특정 문자열로 표시하려고합니다. 바코드 스캐너를 구성하여 스캔 한 모든 바코드 끝에 $를 붙입니다. 그런 다음 필터링 된 출력을 서식있는 텍스트 상자에 표시하려고합니다. 이 목적으로 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
점은이 $ 기호를 따기되지이다. 시도했다. Isnt working! – user3345361
은 디버깅 중에 richtextbox.text에 $ 기호를 표시하지 않지만 프로그램에 표시하면 – user3345361
@ user3345361 :이 문을 사용하여 $ sign을 확인합니까? if if (e.KeyChar == (char) 36)? –