2017-08-29 4 views
-3

私はC#を使用してソフトウェアを開発しています。特定のフォームが開いているときにすべてのキーボード入力をキャプチャする必要があります。特定のフォームが開いているときにすべてのキーボード入力をキャプチャします

キーボードとして情報をキャプチャするカードリーダーがあります。 私はポップアップを開いてカードを渡すようにユーザーに指示し、それが有効なカードであれば入力をキャプチャしてデータベースにチェックインする必要があります。

フォームにフォーカスがあるときにキーボード入力をキャプチャする方法が見つかりませんでした。

誰でもそれを行う方法を知っていますか?

+0

こんにちはと歓迎するスタックオーバーフロー!コードが原因で発生した問題について質問するときに、人々が問題を再現するために使用できるコードを提供すると、より良い回答が得られます。 Minimal、Complete、Verifiableの例を作成するには、https://stackoverflow.com/help/mcveを参照してください。 – Baddack

+2

ちょうど不思議で、答えを見つけられなかったキーボード入力をキャプチャする方法をどうやって検索しましたか?このサイトを検索すると、いくつかの... https://stackoverflow.com/search?q = capture + keyboard + input。 –

答えて

1

フォームには、「KeyPress」と呼ばれるイベントが含まれています。プロパティの小さな稲妻アイコンをクリックしてイベントを表示し、 "KeyPress"をダブルクリックしてメソッドを配線します。

(あなたがカード番号を表す数字の長い文字列をしたい場合は、他の言葉で)複数のキー入力を期待している場合は、このような時に、入力1つの文字を格納する必要があります。

// 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

私はそれを受け入れようとしていましたが、アカウントを作成したばかりなので、私はそれを評価するのに十分な評判がないようです! –

関連する問題