MESCIUS InputMan for ASP.NET 10.0J
フォーカス移動

マスクコントロールではフォーカス制御に関する様々な機能を搭載しています。

自動フォーカス移動
ExitOnLastCharプロパティをTrueに設定すると、入力された文字列が、Formatプロパティで設定した最大文字数に達したときに、自動的に次のコントロールへフォーカスを移動できます。
矢印キーによるフォーカス移動
ExitOnLeftRightKeyプロパティを使用すると、キャレットがコントロール内のテキストの最初または最後の文字上にある状態で、[→]、[←]、または[Ctrl]+[→]、[Ctrl]+[←]の各キーを押したときに、フォーカスを前後のコントロールに移動することができます。 ExitOnLeftRightKeyプロパティに設定できる値は次のとおりで、既定値はExitOnLeftRightKey.Noneです。

ExitOnLeftRightKeyの値 説明
None 矢印キーを使ってフォーカスを移動することはできません。
Left キャレットが入力中のテキストの左端にあるときに[←]キーまたは[Ctrl]+[←]キーを押すと、フォーカスは1つ前のコントロールに移動します。
Right キャレットが入力中のテキストの右端にあるときに[→]キーまたは[Ctrl]+[→]キーを押すと、フォーカスは次のコントロールに移動します。
Both 「Left」と「Right」の両方の機能を使用できます。
フォーカス移動の検出
コントロールのフォーカス遷移は、以下の方法で検出できます。

1. フォーカス取得

コントロールがフォーカスを取得すると、クライアント側でonfocusイベントが発生します。

2. フォーカス移動

コントロールからフォーカスが移動すると、クライアント側でonblurイベントが発生します。

3. キー入力によるフォーカス移動

[→]、[←]、[Ctrl]+[→]、[Ctrl]+[←]、[Tab]、[Shift]+[Tab]の各キー、またはショートカットエクステンダで割り当てたキー(KeyActions.NextControlまたはKeyActions.PreviousControlを設定したキー)を使用して、フォーカスを前後のコントロールに移動したときには、KeyExitクライアントイベントが発生します。

ショートカットエクステンダのGcShortcutオブジェクトを使ってコントロールの機能を特定のキーに割り当てた場合、それらのキーに割り当てられていたデフォルトの機能は動作しなくなります。
また、TabActionプロパティの設定内容によって、キーボードを操作したときの動作が異なります。詳しくは、次項を参照してください。

フィールド間の移動
マスクコントロールの表示領域は、通常、リテラル文字列と入力フィールドの2種類に分かれています。 フィールドについては「書式の設定」を参照してください。

TabActionプロパティをTabAction.Controlに設定すると、[Tab]キーまたは[Shift]+[Tab]キーによるフォーカス移動は、コントロール 間で行われます。TabAction.Fieldに設定すると、フォーカス移動は入力フィールド間で行われます。

また、マスクコントロールのナビゲーションや選択などの操作は、リテラル文字列と入力フィールドの位置関係による影響を受けます。
キャレットとフィールドの設定
CursorPositionプロパティとHighlightTextプロパティを使用すると、コントロールがフォーカスを受け取ったときにキャレットを配置するフィールドまたは選択状態にするフィールドを指定できます。

HighlightTextの値 キャレットまたはフィールドの状態
None キャレットは、CursorPositionプロパティで指定したフィールドの最初の桁に位置します。
Field CursorPositionプロパティで指定したフィールドが選択状態になります。
All CursorPositionプロパティの設定に関わらず、コントロール内のすべての内容が選択状態になります。
関連トピック

 

 


© MESCIUS inc. All rights reserved.