カードをスワイプしている場合、たとえばテキストボックスのように、wpf フォームのどこかに入力があると思いますか? 次に、イベント、おそらく KeyUp イベント ハンドラーを追加する傾向があります (キーボード ウェッジ カード スキャナーは、スワイプが成功したことを示すために ENTER などの処理終了信号を送信しますか?)、KeyUp イベント ハンドラーで、 StringBuilder を使用して文字列を作成し、ENTER などの処理終了シグナルがキャッチされると、「%」と「;」を削除できます。StringBuilder インスタンスから取得し、必要なことは何でも行います。
KeyUp イベント ハンドラーが "%" を受け取ったときに、状態システムを使用する方が簡単な場合があります。次に、期待される終了状態が ";" になる別の状態に入ります。
static bool StartState = false;
StringBuilder sbInput = new StringBuilder();
private void textBox1_KeyUp(オブジェクト送信者, KeyEventArgs e)
{
if (!StartState){
if (e.KeyCode == Keys.D5) StartState = true;
sbInput.Append((char)e.KeyValue);
}そうしないと{
if (e.KeyCode == Keys.OemSemicolon){
StartState = false;
// sbInput にはスキャナからのデータが含まれます。
// 別の場所にコピーして sbInput をリセット
// sbInput.Remove(0, sbInput.Length);
}
sbInput.Append((char)e.KeyValue);
}
e.Handled = true;
}
これがお役に立てば幸いです。よろしくお願いします、トム。