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"

キー操作における優先順序

ひとつのキー操作に対して複数の意味が割り当てられている状態で、実際にそのキー操作を行った場合、実行の優先順序は以下のようになっています。

  1. KeyDownイベントが発生します。

  2. イベントハンドラでtrueを返した場合、処理は終了します。

  3. Tabキー、Shift+Tabキー、またはnextTabKeyプロパティ、prevTabKeyプロパティに設定されているキー操作は、優先的にフォーカス移動が実行されます。

  4. Button系オブジェクトのaltKeyプロパティに割り当てられているキー操作が実行されます。

  5. オブジェクト固有のキー操作が実行されます。

※ 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");
    }
}


使用例 CRSダウンロード

Form DisplayObj_eve {
   x = 0;
   y = 0;
   width = 800;
   height = 600;

   /* Form1上で操作します */
   Form Form1 {
           x = 15;
           y = 15;
           width = 600;
           height = 300;

           function onMouseEnter(e) {
                           bgColor = "#CCFFCC" ;
                   }
           function onMouseLeave(e) {
                           bgColor = "#ffffff" ;
                   }
   }

   EditBox chkScroll {
           x = 15;
           y = 390;
           width = 192;
           height = 82;
           value = "スクロールバーの白部分をクリックして挙動を確認" ;
           /* contextMenu = false ;  */

           Function OnScrolled( e ) {
                   //.MessageBox( "スクロール発生 " );
           }
   }
   CheckBox chkGesture {
           x = 15;
           y = 325;
           width = 192;
           height = 62;
            UseChange = true;

           CheckItem item[2] {
                   height = 25;
                   Width = 170;

                   Function OnTouch( e ) {
                           try {
                                   ^.^.Form1.UseMouseMove = chkGesture.item[0].Selected ? DisplayObject.MOVE_ANYTIME : DisplayObject.MOVE_STD;
                                   ^.^.Form1.UseMouseWheel = chkGesture.item[1].Selected ? Form.WHEEL_ANYTIME : Form.WHEEL_STD;
                           } catch( e ) {
                                   //.MessageBox( e.message );
                           }
                   }
           }
           item[0].Title = "UseMouseMove=ANYTIME";
           item[1].Title = "UseMouseWheel=ANYTIME";
   }

   EditBox edEvent {
           x = 210;
           y = 325;
           width = 405;
           height = 196;
   }

   Button Button1 {
           x = 119;
           y = 491;
           width = 88;
           height = 32;
           Title = "クリア";

           Function OnTouch( e ) {
                   ^.edEvent.Clear();
           }
   }

/*マウス関係のイベントが多く記述されています。必要なものを選んで確認ください */

   Function OnDoubleClicked( e ) {
           edEvent = String.format( "[%1] DoubleClicked xpos=%2 ypos=%3\r\n", e.from.name, e.xPos, e.yPos ) + edEvent;
   }

   Function OnRClicked( e ) {
           edEvent = String.format( "[%1] RClicked xpos=%2 ypos=%3\r\n", e.from.name, e.xPos, e.yPos ) + edEvent;
   }

   Function OnMouseWheel( e ) {
           edEvent = String.format( "[%1] MouseWheel xpos=%2 ypos=%3\r\n", e.from.name, e.xPos, e.yPos ) + edEvent;
   }

   Function OnClicked( e ) {
           edEvent = String.format( "[%1] Clicked xpos=%2 ypos=%3\n", e.from.name, e.xPos, e.yPos ) + edEvent;
   }

   Function OnMouseMove( e ) {
           edEvent = String.format( "[%1] MouseMove xpos=%2 ypos=%3\n", e.from.name, e.xPos, e.yPos ) + edEvent;
   }

   Function OnContextMenu( e ) {
           edEvent = String.format( "[%1] ContextMenu xpos=%2 ypos=%3\r\n", e.from.name, e.xPos, e.yPos ) + edEvent;
   }

   Function OnLButtonUp( e ) {
           edEvent = String.format( "[%1] LButtonUp xpos=%2 ypos=%3\r\n", e.from.name, e.xPos, e.yPos ) + edEvent;
   }

   Function OnRButtonUp( e ) {
           edEvent = String.format( "[%1] RButtonUp xpos=%2 ypos=%3\r\n", e.from.name, e.xPos, e.yPos ) + edEvent;
   }
   Function OnKeyDown( e ) {
           edEvent = String.format( "[%1] KeyDown \r\n", e.key ) + edEvent;
   }
   Function OnKeyUp( e ) {
           edEvent = String.format( "[%1] KeyUp \r\n", e.key ) + edEvent;
   }

}