2014-10-03 102 views
1

我正在使用條形碼閱讀器從產品中獲取條形碼。 我在文本框中獲取代碼。我把textchanged事件放在那個文本框上。 但問題是,當條形碼將其值(例如,如果條形碼是5位數字),則textchanged事件被激發五次。 如何獲得這件事的騎?如何從條形碼閱讀器使用textChanged事件

+0

將條形碼閱讀器郵戳設置爲「Cr」。處理'KeyPress'事件。然後如果'e.KeyChar = ChrW(13)'設置'e.Handled = True'。 – 2014-10-03 07:12:58

回答

0

您應該能夠編程您的條形碼讀取器以輸出前綴字符和後綴字符(掃描值之前的一個輸出和之後的一個輸出)。假設您將其設置爲在掃描數據值之前輸出星號(*),然後輸出回車符(CR)。附加一個處理程序的TextBox.PreviewTextInput Event,聽出了星號字符:

private void PreviewTextInput(object sender, TextCompositionEventArgs e) 
{ 
    if (e.Text == "*") 
    { 
     e.Handled = true; 
     // Data input has started 
    } 
} 

您可以使用此彈出一條信息:「掃描...」,或者其他任何你需要。接下來,附加一個處理程序的TextBox.KeyUp Event,聽出了輸入鍵:

private void KeyUp(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.Return) 
    { 
     string scannedValue = ScanTextBox.Text.Replace("*", string.Empty); 
     // Do something with scannedValue 
    } 
} 

現在scannedValue變量應包含掃描的條形碼值。