私が所属している会社は機械要素部品を製造しています。
製品の情報をバーコードから参照してゴニョゴニョしますので、バーコードリーダーを使います。
バーコードリーダーは特殊な物ではなく殆どがキーボードと同じ振る舞いをします。
なのでPreviewKeyDownイベントをキャッチして改行コードを判断できればバーコードから読み取った情報が取得できます。
PreviewKeyDownイベントをキャッチするのはWindowsですTextBoxなどではありません。
絶対にTextBoxにフォーカスがある保証はありません。
作業者に「TextBoxを選択した状態にして!」なんてプログラム制作者のエゴでしかありませんし、現場のオバお姉さん方々はどのコントロールにフォーカスがあるなんて関係ない話です。
アプリケーションはWPFでPrismとReactivePropertyを使い最低限度の記述だけを掲載します。
プログラム全体像はこちら。
XAML
<Window...>の中に下記2行を追加
<Window...>の次に
ViewModel
変数宣言
コンストラクタで
イベントが発生した時に実行されるメソッド
メソッドの中で何をするかは自由ですが、数字はD1やNumPad1といった文字列で取得されるので最後の1文字だけを抽出する必用があります。
2019/11/06 追記
私はてっきりWinFormsと同じようにCRやLFが返ってくるかと思ったら全然違いました。
CRは「LeftCtrl」と「M」、LFは「LeftCtrl」と「J」、CRLFはこのセット、アルファベットの大文字だと「LeftShift」と英文字が取得できます。
実際に使用する時はどんな文字列を返すのか確認した方がよさそうです。
0 件のコメント:
コメントを投稿