2011-12-22 75 views
0

我正在使用條碼掃描模塊在c#中的桌面應用程序。問題是,只要我掃描條形碼,應用程序就會停止顯示消息框。應用程序不拋出任何異常,它只是執行代碼。條碼掃描停止顯示消息框

掃描條形碼前,應用程序可以正常工作。

我不知道爲什麼會發生這種情況,我該如何解決它。

這是我的代碼:

if (string.IsNullOrEmpty(BarcodeScan) && e.KeyChar.ToString() == "*") 
    BarcodeScan = e.KeyChar.ToString(); 

else if (Regex.IsMatch(BarcodeScan + e.KeyChar.ToString(), @"^[*]\d+$")) 
    BarcodeScan += e.KeyChar.ToString(); 

else if (Regex.IsMatch(BarcodeScan + e.KeyChar.ToString(), @"^[*]\d+[*]$")) 
{ 
    BarcodeScan += e.KeyChar.ToString(); 
    ArticalID = BarcodeScan.Substring(1, BarcodeScan.Length - 2); 

    //Code to find article in DB 

    ArticalID = string.Empty; 
    BarcodeScan = string.Empty; 
} 
else 
{ 
    if (BarcodeScan.StartsWith("*")) 
    { 
     BarcodeScan = string.Empty; 
    } 
} 
+1

如何向我們展示一些代碼...? – Shai 2011-12-22 12:53:11

+0

...並且您的條形碼閱讀器設備是否有任何SDK或者它只是啞鍵盤模擬器? – StaWho 2011-12-22 12:58:12

+0

@StaWho這是一個愚蠢的鍵盤模擬器。 – Haris 2011-12-22 13:15:14

回答

3

據我理解你的問題:條形碼掃描儀將掃描的數字/字符大多與「輸入」結尾。也許該輸入通過調用默認按鈕來關閉您的MessageBox。

+0

嗯,我認爲你有一個點,這可能是原因。我來檢查一下。如果這是真的,我該如何解決這個問題。實際上,當我們的數據庫中找不到掃描的ID時,我會顯示警報。 – Haris 2011-12-22 13:14:49

+0

@Haris:這取決於你的軟件的設計... – Fischermaen 2011-12-22 13:20:21

+0

對於遲到的更新感到抱歉,我忙於其他任務。你是對的,這個問題是由於條碼閱讀器通過了2個輸入。我試圖重構我的代碼,但找不到解決方案。你能幫我解決我的代碼嗎?掃描的格式是* Digits *,我無法測試* Digits * \ n \ n,因爲用戶可以通過鍵盤輸入相同的格式。 – Haris 2012-01-02 22:18:23