GUI機能拡張

Q
TABキー、NextTabKeyプロパティに設定されているキーなどの押下による
フォーカス移動を制御する
[内容]
TABキーまたはNextTabKey、PrevTabKeyに設定されているキー押下、AutoTabが
実行される操作で自動的に移動していたフォーカスを制御する

A
[解決方法]
FocusObjectクラスのAutoTabFocusプロパティ、FocusOperationイベント、MoveFocusメソッドを
利用して、TABキーまたはNextTabKey、PrevTabKeyプロパティに設定されているキーの押下、
AutoTabが実行される操作で発生するフォーカス移動を制御することが可能です。

AutoTabFocusプロパティは、キー操作によるフォーカスの制御を設定します。
falseを設定すると、フォーカスは自動的に移動せず、ユーザのマウスオペレーションまたは、
スクリプトからのSetFocusメソッド、MoveFocusメソッドでのみフォーカスが移動します。

FocusOperationイベントは、AutoTabFocusプロパティにfalseが設定された状態で
TABキーまたはNextTabKey、PrevTabKeyに設定されているキーの押下、
AutoTabが実行される操作を行ったときに発生します。
マウスによる操作でフォーカスの移動が発生した場合、FocusOperationイベントは
発生しませんので、ご留意ください。

MoveFocusメソッドは、フォーカス移動順序に従ったフォーカス移動が可能です。

例えば、AutoTabFocusプロパティをfalseに設定し、FocusOperationイベントにて入力チェックを
実装することで、キー操作によるフォーカス遷移においては、入力エラー時に
他のオブジェクトにフォーカスを移すことなく、再入力して欲しいオブジェクトに
フォーカスを留めることが可能となります。


[サンプルコード]

TextBox TextBox1 {
    X = 15;
    Y = 15;
    Width = 100;
    Height = 25;
    AutoTabFocus = $FALSE;
    
    Function OnFocusOperation( e ) {
        if( e.From == "" ){
            BgColor = $CC9999;
        }else{
            BgColor = $STD;
            MoveFocus( e.Direction );
        }
    }
}
管理番号:Gui41_014
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser XE・Biz/Designer XE TIPS集 トップへ