テキストの長さを確認できます(バーコードでは一定だと思います)。たとえば、TextChangeイベントをサブスクライブし、text length = barCodeLengthの場合、Scannedイベントを発生させます。
バーコードの長さが可変の場合は、次のように試すことができます。1)定義
private Timer _timer;
private DateTime _lastBarCodeCharReadTime;
2)タイマーを初期化する
_timer = new Timer();
_timer.Interval = 1000;
_timer.Tick += new EventHandler(Timer_Tick);
3)ハンドラーを追加します
private void Timer_Tick(object sender, EventArgs e)
{
const int timeout = 1500;
if ((DateTime.Now - _lastBarCodeCharReadTime).Milliseconds < timeout)
return;
_timer.Stop();
// raise Changed event with barcode = textBox1.Text
}
4)TextChangedイベントハンドラーにこれを追加します
private void textBox1_TextChanged(object sender, EventArgs e)
{
_lastBarCodeCharReadTime = DateTime.Now;
if (!_timer.Enabled)
_timer.Start();
}