KeyDownイベントは、キーボードの押下で発生します。KeyDownイベントをOnKeyDownイベントハンドラで処理することにより、ショートカットキーのような表現をすることができます。
iOS版
ハードウェアキーボードの操作によるKeyDownイベントを利用するには、iOS 13.4以降のOSが必要です。
Eventオブジェクトには以下の子オブジェクトが付加されています。
型 |
名前 |
説明 |
---|---|---|
Number |
ShiftKey |
Shiftキーが押されている場合は1、それ以外は0 |
Number |
CtrlKey |
Ctrlキーが押されている場合は1、それ以外は0 |
Number |
AltKey |
Altキーが押されている場合は1、それ以外は0 |
Number |
GuiKey |
プラットフォーム固有の装飾キーが押されている場合は1、それ以外は0 *1 Android版 iOS版 |
String |
Key |
押されたキー |
特殊キーに関しては後述の表を参照してください。
使用例
Function OnKeyDown(e) { if (e.Key == "RETURN") { /* Enterを押したときForm2に画面を切り替えます */ //.Form1.Delete(); //.Get("Form2.crs"); } }
Android版
キーの種類 |
格納される値 |
---|---|
Esc | "ESCAPE" *1 |
BackSpace | "BACK" *1 |
ENTER | "RETURN" *1 |
Space | "SPACE" *1 |
Insert | "INSERT" *1 |
Home | "HOME" *1 |
PageUp | "PRIOR" *1 |
Delete | "DELETE" *1 |
End | "END" *1 |
PageDown | "NEXT" *1 |
方向キー左 | "LEFT" *1 |
方向キー上 | "UP" *1 |
方向キー右 | "RIGHT" *1 |
方向キー下 | "DOWN" *1 |
テンキー 0〜9 | "NUMPAD0"〜"NUMPAD9" *1 |
テンキー . | "DECIMAL" *1 |
テンキー * | "MULTIPLY" *1 |
テンキー + | "ADD" *1 |
テンキー / | "DIVIDE" *1 |
テンキー - | "SUBTRACT" *1 |
NumLock | "NUMLOCK" *1 |
F1〜F12 | "F1"〜"F12" *1 |
ScrollLock | "SCROLL" *1 |
iOS版
キーの種類 |
格納される値 |
---|---|
Esc | "ESCAPE" *1 |
BackSpace | "BACK" *1 |
ENTER | "RETURN" |
Space | "SPACE" *1 |
Insert | "INSERT" *1 |
Home | "HOME" *1 |
PageUp | "PRIOR" *1 |
Delete | "DELETE" *1 |
End | "END" *1 |
PageDown | "NEXT" *1 |
方向キー左 | "LEFT" *1 |
方向キー上 | "UP" *1 |
方向キー右 | "RIGHT" *1 |
方向キー下 | "DOWN" *1 |
テンキー 0〜9 | "NUMPAD0"〜"NUMPAD9" *1 |
テンキー . | "DECIMAL" *1 |
テンキー * | "MULTIPLY" *1 |
テンキー + | "ADD" *1 |
テンキー / | "DIVIDE" *1 |
テンキー - | "SUBTRACT" *1 |
テンキーEnter | "SEPARATOR" *1 |
CapsLock | "CAPITAL" *1 |
NumLock | "NUMLOCK" *1 |
F1〜F12 | "F1"〜"F12" *1 |
ScrollLock | "SCROLL" *1 |
左Shift | "LSHIFT" *1 |
右Shift | "RSHIFT" *1 |
左Ctrl | "LCONTROL" *1 |
右Ctrl | "RCONTROL" *1 |
左Command | "LGUI" *1 |
右Command | "RGUI" *1 |
iOS版では、TextBox上でソフトウェアキーボードのEnterキーを入力することによってもイベントが発生します。
装飾キーが押されたかどうかの情報(ShiftKey、CtrlKey、AltKey、GuiKey)は常に0になります。
また、Biz/Browser SmartDevice v1.6.8以降ではTextBox上でハードウェアキーボードのEnterキーを入力した場合も、装飾キーが押されたかどうかの情報は常に0になります。
KeyDownイベントは、Biz/Browserの画面内でキーボードフォーカスがどのオブジェクトにあたっているかで、発生するキー操作の種類や、イベントの送信元となるオブジェクトが決まります。
KeyDownイベントの発生元オブジェクトは、オブジェクトにキーボードフォーカスがあたっている場合、そのオブジェクトが置かれているFormオブジェクトから発生します。キーボードフォーカスがどのオブジェクトにもあたっていない場合、最も上位のFormオブジェクトから発生します。
ひとつのキー操作に対して複数の意味が割り当てられている状態で、実際にそのキー操作を行った場合、実行の優先順序は以下のようになっています。
1. Tabキー、Shift+Tabキー、またはNextTabKeyプロパティ、PrevTabKeyプロパティに設定されているキー操作は、優先的にフォーカス移動が実行されます。
2. オブジェクト固有のキー操作が実行されます。
3. Button系オブジェクトのAltKeyプロパティに割り当てられているキー操作が実行されます。
4. KeyDownイベントが発生します。
※ 1回のキー操作で起こる動作は、フォーカス移動、オブジェクト固有操作、AltKeyプロパティの動作、KeyDownイベント発行のいずれか1つです。
・文字入力で使用される特殊キー(BackSpaceなど)はIMEの種類やオブジェクトの状態の影響を強く受けるため、KeyDownイベントでは使用しないことを推奨します。
・OSにシステムキーやショートカットキーとして割り当てられているキーを使用すると操作性の混乱を招きますので使用しないことを推奨します(例:iOSではcommand+Hキーでホーム画面に移動します)。
・システムキーやショートカットキーとして割り当てられている場合(あるいは将来のために予約されている場合)、KeyDownイベントが発生しない場合があります。
・CapsLockやNumLockなど、キーに固有の意味のあるキーは、操作に混乱を招きますので使用しないことを推奨します。
・KeyDownイベントは、端末やOSが認識したキー操作に対して発生します。これらはキーボードのハードウェアの影響を受けます。ハードウェアによっては、キーの組み合わせによってBiz/BrowserでKeyDownイベントが発生しないことがあります。
・キーによっては、機種によってCtrl、Shift、Altキーと同時に押下したとき、別のキーとして認識されることがあります。これらの特殊なキーを利用する場合、実際に使用するキーボードで、KeyDownイベントが正しく発生することを必ず確認してください。
・ハードウェアとキーの組み合わせによっては、Ctrl、Shift、Altキーと同時に押下したにも関わらず、CtrlKey、ShiftKey、AltKeyが1($TRUE)とならないことがあります。
・キー押下にフォーカスのあたっているオブジェクトの種類により、KeyDownイベントが発生しないことがあります。
・Bluetoothキーボード等の外付けHID機器を使用した場合、OSの設定によらず英語配列のキーボードとして認識される場合があります。