これが何百回も尋ねられたことは知っていますが、私を助ける解決策を見つけることができませんでした. 私はバーコード スキャナーを使用しており、キーダウン イベントだけを使用して入力されたキーを取得できるようにしたいと考えています。何らかの理由で、keydown イベントと keypress イベントの両方を使用できません (keypress イベントは実行されません)。
ハイフン、大文字、ドットなどの文字を取得できる必要があり、Enter キーも検出する必要があります。
これらは私のリスナーです:
form.KeyDown += new KeyEventHandler(Input_KeyDown);
form.KeyPress += new KeyPressEventHandler(Input_KeyPress);
そして、これらは私の方法です:
private void TimedOut(object sender, EventArgs e)
{
_barcode = "";
}
private void Input_KeyDown(object sender, KeyEventArgs e)
{
_timer.Stop();
_timer.Start();
if (e.KeyData == Keys.Enter)
{
if (!_barcode.Equals(""))
{
this.BarcodeScanned(_barcode, new EventArgs());
}
}
else
{
}
}
private void Input_KeyPress(object sender, KeyPressEventArgs e)
{
_timer.Stop();
_timer.Start();
_barcode += e.KeyChar;
}