API version 1
- ‐
KeyDown¶
キーボードのキーの押下で発生します。
イベントハンドラの戻り値としてtrueを返すと以降の処理は行われません。
KeyDownイベントは、Biz/Browserの画面内でキーボードフォーカスがどのオブジェクトにあたっているかで、発生するキー操作の種類や、イベントの送信元となるオブジェクトが決まります。
KeyDownイベントのEventオブジェクトは以下の構造を持ちます。
型 | 名前 | 説明 |
---|---|---|
string | key | キー名。文字入力キーの場合は入力される文字が入ります(アルファベットは大文字固定)。特殊キーは下表を参照してください。 |
boolean | shiftKey | Shiftキーが押されている場合はtrue、それ以外はfalse |
boolean | ctrlKey | Ctrlキーが押されている場合はtrue、それ以外はfalse |
boolean | altKey | Altキーが押されている場合はtrue、それ以外はfalse |
keyプロパティに格納される値(特殊キー)
キーの種類 | 格納される値 |
---|---|
Esc | "ESCAPE" |
Tab | "TAB" |
BackSpace | "BACK" |
Return | "RETURN" |
Enter | "ENTER" |
Insert | "INSERT" |
Delete | "DELETE" |
Pause | "PAUSE" |
Home | "HOME" |
End | "END" |
← | "LEFT" |
↑ | "UP" |
→ | "RIGHT" |
↓ | "DOWN" |
PageUp | "PRIOR" |
PageDown | "NEXT" |
Shift | "SHIFT" |
Control | "CONTROL" |
Windowsキー | "LWIN" |
Alt | "ALT" |
CapsLock | "CAPITAL" |
NumLock | "NUMLOCK" |
ScrollLock | "SCROLL" |
F1~F12 | "F1"~"F12" |
メニューキー | "MENU" |
Space | "SPACE" |
キー操作における優先順序
ひとつのキー操作に対して複数の意味が割り当てられている状態で、実際にそのキー操作を行った場合、実行の優先順序は以下のようになっています。
- KeyDownイベントが発生します。
- イベントハンドラでtrueを返した場合、処理は終了します。
- Tabキー、Shift+Tabキー、またはnextTabKeyプロパティ、prevTabKeyプロパティに設定されているキー操作は、優先的にフォーカス移動が実行されます。
- Button系オブジェクトのaltKeyプロパティに割り当てられているキー操作が実行されます。
- オブジェクト固有のキー操作が実行されます。
※ 1回のキー操作で起こる動作は、フォーカス移動、altKeyプロパティの動作、オブジェクト固有操作のいずれか1つです。
KeyDownイベント利用時の注意点
- 文字入力で使用される特殊キー(漢字、無変換、BackSpaceなど)はIMEの種類やオブジェクトの状態の影響を強く受けるため、KeyDownイベントでは使用しないことを推奨します。
- システムキー(システムメニュー Alt+Spaceやウィンドウ切り替え Alt+Tabなど)と同じキーを使用すると、操作性の混乱を招きますので使用しないことを推奨します。
- PrintScreenやPauseなど、キーに固有の意味のあるキーは、操作に混乱を招きますので使用しないことを推奨します。
- KeyDownイベントは、Windowsが認識したキー操作に対して発生します。Windowsのキー操作の認識は、キーボードのハードウェアの影響を受けます。例えば、NumLockキーとScrollLockキーを1個のボタンで兼用してShiftキーで選択している機種もあります。こうしたキーボードでは、Shift+ScrollLockは、発生しません。
- Pause、NumLockなどの特殊キーでは、機種によっては、Ctrl、Shift、Altキーと同時に押下したとき、別のキーとして認識されることがあります。これらの特殊キーを利用する場合、実際に使用するキーボードで、KeyDownイベントが正しく発生することを必ず確認してください。
使用例
function onKeyDown(e) {
if (e.ctrlKey == true && e.key == "G") {
/* Ctrl+Gを押したときForm2に画面を切り替えます */
//.Form1.delete();
//.get("Form2.crs");
}
}