いつもお世話になります。グラフです。
WinXP、VB6SP6です。
バーコードリーダを使用する場合の処理で質問です。
バーコードで読んだ内容を、テキストボックスに表示するとします。
現状は、フォームにある、全てのコントロールの
キーダウンイベントで、バーコードで読んだ内容をテキストボックスに
表示しています。
「現状は、フォームにある、全てのコントロールの」
という部分が、プログラムコードも多くなり、
コントロールを追加する場合に、気をつかわなくてはいけないので、
何か、良い方法はないかと、皆様の意見をお聞きしたいのです。
以上、よろしくお願いいたします。
「バーコードで読んだ」
タイミングで
「テキストボックスに表示」
すればいいと思いますが、なぜ
「全てのコントロールのキーダウンイベント」
での表示なのでしょうか?
言葉が足りず、申し訳ございません。
他のコントロールがフォーカスを持っていた場合に、
バーコードを読み込むと、
フォーカスを持っているコントロールの
キーダウンイベントが発生してします為です。
ふちさんが仰ってる通り、
これまでの情報だけで考えると、
キーダウンイベントは使用せずに、
「バーコードを読み込んだら表示する。」
で良いような気がします。
私はいつも、タイマーに読込と表示をさせています。
> 全てのコントロールのキーダウンイベントで、
コントロールごとに設定せず、KeyPreview プロパティを設定した上で、
フォームの KeyPress 等で処理するのは駄目なのでしょうか?
また、キーボードインターフェイスタイプのリーダーだと、
「バーコード」なのか「キーボードからの入力」なのか
判定できないと思いますが、その点は問題にならないのでしょうか。
返信ありがとうございます。
PS/2のバーコードリーダを使用しています。
ふちさん。シーさん。
そこで、「バーコードを読み込んだ」という判別はできるのでしょうか。
> また、キーボードインターフェイスタイプのリーダーだと、
> 「バーコード」なのか「キーボードからの入力」なのか
> 判定できないと思いますが、その点は問題にならないのでしょうか。
「バーコード」の場合は、ヘッダとターミネータで処理しています。
また、ターミネータがこない場合のタイムアウトも用意しております。
> コントロールごとに設定せず、KeyPreview プロパティを設定した上で、
> フォームの KeyPress 等で処理するのは駄目なのでしょうか?
KeyPreviewプロパティを初めて知りました。
早速試してみます。
PS/2のリーダなのですね。
私は、普段232Cのリーダを使用していまして、
それを前提に、考えておりました。
失礼しました。
シーさん。ふちさん。
こちらの、環境の記載が足りず、
申し訳ございませんでした。
KeyPreviewプロパティをTRUEにすることで
できました。
皆様、いつもご教授ありがとうございます。
ツイート | ![]() |