Button

Q1
フォーカスの当っているボタンをEnterキーで対応させる
[内容]
フォーカスを受けているボタンをEnterキーで押下したことにしたい

A1
[解決方法]
ButtonオブジェクトのAltkeyプロパティでは、Touchイベントを発行する代替キーを設定出来ます。Enterキーを割り当てて対応することが可能ですが、複数のAltkeyプロパティ設定がある場合、一つしか有効になりません。
複数のButtonのうち、フォーカスを受けているもののみキー押下でのTouchイベントを実行させるには、フラグ制御とKeyDownイベントを利用して実現します。


[サンプルコード]
フォーカスを受けているボタンを特定するためフラグを持ち、それをButtonの
GetFocusで制御します。
そして、FormのKeyDownイベントハンドラで"RETURN"を捉え、ButtonのOnTouchイベント
を発生させます。
            
Number button_f;
Button Button1 {
 ・
 ・
    Function OnGetFocus( e ){
        Form1.button_f = 1; /* ボタン1にフォーカス */
    }
    Function OnLostFocus( e ) {
        Form1.button_f = 0; /* ボタン1のフォーカスロスト */
    }
}


上記と同様に全てのボタンに対して行います。

・KeyDownでの記述
Function OnKeyDown( e ) {
    if(e.key == "RETURN") {
        switch(Form1.button_f) {
            case 1:
                Form1.Button1.OnTouch(); 
                break; 
            case 2:
                Form1.Button2.OnTouch(); 
                break; 
            case 3:
                Form1.Button3.OnTouch(); 
            break;
        }
    }
}

CRSファイル形式のサンプルを
  「フォーカスのあたっているボタンをEnterキー押下により実行するサンプル(Btn_001.zip)
よりご利用いただけます。

管理番号:Btn_001
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser・Biz/Designer TIPS集 トップへ