ButtonのClickイベント

今日ドツボにハマったのはタイトルにあるボタンのクリックイベントなんですよ。

今、バーコードリーダーを使ったアプリ作ってるんですが、そいつは読み取ったコードを、キーボードを打鍵するかのごとく出力するミドルウェアがついてまして。

そうすると、入力はテキストボックスになるよねぇーってことにしまして・・・

入力の終端はEnterキーを押したかの如くミドルウェアがコードに付与してくれます。

なんで、Enterキーのイベントを拾って入力されたコードを処理することにしました。

さて、テキストボックスだけってわけにはいかないので、いくつかのボタンをつけました。

テキストボックスからフォーカスが外れると、バーコードが読めなくなるので、色々とイベントを駆使しましたよ。

出来上がったアプリをテストしたら・・・

なんと、Enterキーを押したとき、あり得ないボタンのクリックイベント(と思っていた)が走って、なんだとぉーってことに(;´Д`)

原因は、フォーカスを持ったボタンで、Enterキーを押すと、そのボタンのClickイベントになるという・・・Windowsの仕様だそうな・・

ButtonBase.Click イベント (System.Windows.Controls.Primitives)

解決はいたって簡単。ClickイベントをMouseClickイベントにしました。

はぁ。疲れた(;´Д`)