2011-03-24 59 views
1

我似乎無法找到一種方法來捕捉磁卡閱讀器的輸入。當它滑動時,輸入會進入活動文本編輯器,如說一個記事本。將磁卡閱讀器的輸入捕捉到變量

不幸的是,對文本框領域的關注不會訣竅,因爲我需要將它作爲標籤而不是文本框。因此,我需要一種方法將USB設備的輸入轉換爲變量或標籤。

有沒有人知道我可以使用這個或任何更好的想法的.NET類?

+0

難道你不能使用文本框並將其格式化爲標籤嗎?輸入結束後,您可以只讀。 – Fernando 2011-03-24 01:05:33

+0

它是winforms應用程序嗎? – 2011-03-24 01:11:11

+0

是的,它是Windows窗體,用戶不允許手動輸入。所以我不能使用文本框 – Corbee 2011-03-24 01:13:59

回答

1

我不認爲會有反正你會阻止用戶手動輸入。我懷疑你有模擬鍵盤的讀卡器。所以,爲了能夠從閱讀器讀取,您必須接收鍵盤輸入,並且鍵盤輸入意味着用戶可以鍵入他們喜歡的任何東西。

可能的解決方案是將您的讀卡器更改爲使用API​​從卡中讀取的讀卡器。

如果獲得更好的讀卡器不是一種選擇,我認爲最好的方法是做一個按鈕。點擊按鈕後,打開一個包含代碼@Bala R提供的新表單。但是,另外,請在第一次按鍵輸入1秒鐘內關閉窗體。這將防止用戶手動篡改輸入,但會爲讀者提供足夠的時間來完成。

4

如果這是一個WinForms應用程序,你可以做

private void Form1_Load(object sender, EventArgs e) 
    { 
     KeyPreview = true; 
     KeyPress += Form1_KeyPress; 
    } 

    private bool inputToLabel = true; 
    void Form1_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (inputToLabel) 
     { 
      label1.Text = label1.Text + e.KeyChar; 
      e.Handled = true; 
     } 
     else 
     { 
      e.Handled = false; 
     } 
    } 

只要窗口有焦點,按鍵字符會去標籤的文本。

+0

+1,因爲它是一種比較方式,處理該設備的程序將文本粘貼到編輯器中。 – 2011-03-24 01:26:20