2017-08-29 54 views
-3

我正在開發一個使用C#的軟件,我需要它在特定窗體打開時捕獲所有鍵盤輸入。當特定窗體打開時捕獲所有鍵盤輸入

我有一個讀卡器,可以捕獲信息作爲鍵盤。 我會打開一個彈出窗口告訴用戶通過卡,然後我需要捕獲輸入,並檢查我的數據庫,如果這是一個有效的卡。

當表單處於焦點時,我無法找到捕獲鍵盤輸入的方法。

有誰知道該怎麼做?

+0

你好,歡迎來到Stack Overflow!當詢問有關由您的代碼引起的問題的問題時,如果您提供可用於重現問題的代碼,您將得到更好的答案。請參閱https://stackoverflow.com/help/mcve以幫助您創建最小,完整和可驗證示例。 – Baddack

+2

只是出於好奇,你是如何尋找一種方法來捕獲鍵盤輸入,你沒有找到任何答案?搜索這個網站變成了幾個... https://stackoverflow.com/search?q =捕獲+鍵盤+輸入。 –

回答

1

表單包含一個名爲「KeyPress」的事件,該事件可用於您正在嘗試執行的操作。單擊屬性中的小閃電圖標查看您的事件,雙擊「KeyPress」連接方法。

如果你期待一個以上的按鍵(換句話說,如果你想要,表示卡數數的長字符串),您將需要輸入一個字符存儲在這樣的時刻:

// add a field to capture the input 
string allInput = ""; 

private void Form1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    allInput += e.KeyChar; // adds the last character pressed to the string 
} 

請注意,如果您的注意力集中在文本框之類的東西上,那麼文本框將接收到KeyPress事件而不是表單。如果只有少數幾個,則可以將相同的KeyPress事件處理程序添加到表單中的每個控件。否則,你正在尋找像全球鑰匙扣這樣的東西,這更復雜。

+0

非常感謝!有效! 對不起,這個白癡的問題,但我從來沒有與C#之前 –

+0

很高興它幫助!如果你發現代碼有用,一個接受的答案將不勝感激。 –

+0

我試圖接受它,但由於我剛剛創建了我的帳戶,似乎我沒有足夠的信譽來評價它! –

相關問題