フォーカス

Q1
矢印キーを利用したフォーカス移動  
[内容]
矢印キーはNextTabKeyプロパティやPrevTabKeyプロパティに設定できない
他の方法で矢印キーを利用したフォーカス移動ができないか

A1

矢印キーのようにNextTabKeyプロパティやPrevTabKeyプロパティに設定できないキーでフォーカス移動を行う場合は、KeyDownイベントとMoveFocusメソッドを利用して実装が可能です。
実際の記述方法は下記のサンプルソースをご参照ください。

なお、Biz/Browser V ver5.0.3.0以降であれば、NextTabKeyプロパティやPrevTabKeyプロパティに標準の定数にないキーを設定する方法があります。

[サンプルコード]

  Form Form1 {
   X = 0;
   Y = 0;
   Width = 254;
   Height = 300;
   
   TextBox TextBox1 {
    X = 21;
    Y = 19;
    Width = 197;
    Height = 54;
    Value = "TextBox1";
    TabIndex = 1;
   }
   TextBox TextBox2 {
    X = 22;
    Y = 87;
    Width = 197;
    Height = 54;
    Value = "TextBox2";
    TabIndex = 2;
   }
   TextBox TextBox3 {
    X = 23;
    Y = 155;
    Width = 197;
    Height = 54;
    Value = "TextBox3";
    TabIndex = 3;
   }
   TextBox TextBox4 {
    X = 23;
    Y = 219;
    Width = 197;
    Height = 54;
    Value = "TextBox4";
    TabIndex = 4;
   }
   
   Function OnKeyDown( e ) {
    /* フォーカスがあたっているオブジェクトを取得 */
    var obj = //.GetFocus();
    
    if( e.Key == "DOWN" ) {
     /* 次のオブジェクトへフォーカス移動 */
     obj.MoveFocus($NEXTFOCUS);
    }else if (e.Key == "UP"){
     /* 前のオブジェクトへフォーカス移動 */
     obj.MoveFocus($PREVFOCUS);
    }
   }
  }

キー操作には優先順位があります、オブジェクト固有のキー操作が割り当てられているような場合、オブジェクト固有のキー操作が優先されKeyDownイベントが発生しない場合があります。
上記のサンプルの場合、もしフォーカス移動のキーを左右キー「←→」に設定した場合、TextBoxのカーソル移動・選択の操作が優先され、KeyDownイベントが発生しません。

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