フォーカス

Q1
バーコードの読み取り後、フォーカスを次の項目に移動させるには
A1
[解決方法]
バーコードをTextBox等に読み込んだのち、キータッチ等の操作をすることなく、
自動的に次のアクション(フォーカスの移動・サーバへのリクエスト発行等)を
起こしたい場合、以下のような方法があります。

■AutoTabプロパティ、MaxLangthプロパティを利用する方法

AutoTabプロパティを$TRUEに設定、MaxLengthプロパティにデータのバイト数を設定
します。この設定により、読み込んだバーコードデータがMaxLengthの値に達した時に、
Touchイベントが発生し、次のオブジェクトへフォーカスを移動させることも出来ます。
この方法は、読み込むバーコードのデータが固定長の場合に有効です。
データが可変の場合、読み込んだデータがMaxLengthプロパティの値に達しなかった
場合にはフォーカスの移動は行われません。


■バーコードデータの最後に「Enter」を挿入する方法

TextBox等のオブジェクトは、「Enter」キーを入力した際にTouchイベントが
発生するので、これを利用します。

各機種とも、バーコードを読み取った際に、読み取ったコードに様々な文字列を
付加させることが可能ですので、読み取ったバーコードの最後に、「Enter」に
相当する「CR+LF」を挿入するよう設定します。
これにより、バーコードを読み取るとTouchイベントが発生しますので、イベント
ハンドラ内に起こしたいアクションを記述することで円滑なアクションを起こすことが
可能となります。

また、Biz/Browser Mobileでは、NextTabKeyプロパティに「Enter」を設定することで、
FocusOperationイベントが発生しますので、こちらもご利用いただけます。


[サンプルコード]
・FocusOperationイベントを利用したサンプル

TextBox TextBox1 {
    X = 10;
    Y = 20;
    Width = 100;
    Height = 20;

    /* Enterキーで項目を次に移動させるために、NextTabKeyを設定し、
       FocusOperationイベントを発生させるために、AutoTabFocusプロパティを
       $FALSEとします。 */

    NextTabKey = $ENTER;
    AutoTabFocus = $FALSE;

    Function OnFocusOperation( e ) {
        /* OnFocusOperation イベントハンドラ */
        MoveFocus(e.Direction);
    }
}
管理番号:BMP_C002
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser Mobile・Biz/Designer Mobile TIPS集 トップへ