キー操作

Similar documents
グラフィックス

VB.NET解説

Microsoft Word - VB_10.doc

ICONファイルフォーマット

ブロック パニック

ファイル操作-インターネットキャッシュ

ルーレットプログラム

NotifyIconコントロール

データアダプタ概要

プロセス間通信

ListViewコントロール

Userコントロール

ファイル操作

インベーダープログラム

上の図がプロジェクトエクスプローラです 通常 VisualBasicEditor 画面の左上に配置されています Microsoft Excel Objects( ワークシート ) フォーム 標準モジュール クラスモジュールなどに分かれていて それらの集まりをプロジェクトといいます Excel のワー

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

3D回転体プログラム

VB実用⑦ エクセル操作Ⅰ

ブロック崩し風テニス

グラフィックス 目次

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値

ウィンドウ操作 応用

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 文字列 文字列リテラル プログラムの中で文字列を表す方法は幾つか有るが 基本的な方法は下記の 2 種で有る 対象と成る文字の集まりをダブルクオーテーション ( " ) で囲うか シングルクオーテーション ( ' ) で囲う PYTHON3 "

正規表現応用

ハッシュテーブル

パラパラ漫画

VB.NET解説

構造体

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 ゲームプログラミング スプライト スプライト Pygame では pygame.sprite を用いる事でスプライトの管理 描画 衝突判定等を簡単に行う事が出来る 此れを利用してキャラクター操作に関する各種機能をスプライトクラスとして 1 個

万年暦プログラム

Prog2_15th

DAOの利用

データベース1

回文作成支援プログラム

ファイル監視

Prog2_12th

HCI プログラミング 10 回目テキストフィールドとキーイベント 今日の講義で学ぶ内容 テキストフィールドの利用 キーイベントの処理 テキストフィールドの利用 1 テキストフィールドを配置してみましょう テキストフィールドを用いることにより 数値や文字列などのデータ入力が可能になります ソースファ

64bit環境で32bitコンポーネントの利用

占領双六ゲーム

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

グラフィックス 目次

モグラ叩きプログラム

リファレンス

回文作成支援プログラム

回文作成支援プログラム

Microsoft Word - VB.doc

VB実用Ⅲ⑩ フリーデータベースⅡ

プラグイン

正規表現概要

データベースⅠ

インターネット入門

(Microsoft Word \203v\203\215\203O\203\211\203~\203\223\203O)

回文作成支援プログラム

Microsoft Word -

構造体

ファイル操作-バイナリファイル

dynabookガイド

スレッド操作 タイマー

C 資料 電脳梁山泊烏賊塾 構造体 C++ の構造体 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで Visual C++ の Windows デスクトップを選択し Windows コンソールアプリケーションを作成する 定義と変数宣言 C++ に

Microsoft PowerPoint - 【HB-1000】キーボードマウス操作マニュアル.ppt [互換モード]

Excel2013 マクロ

オンラインマニュアル

ExcelVBA

VB実用⑬ 印刷Ⅲ(PrintFormメソッド)

倉庫番

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

相性占いプログラム

図 2 Excel スプレッドシートの世界 のウィンドウ 図 3 Visual Basic の世界 のウィンドウ 図 3 の VBA ウィンドウは 図 2 の Excel ウィンドウのメニューの ツール をクリックし 開か れるプルダウンメニューで マクロ /Visual Basic Editor

神経衰弱ゲーム

Ver.1.1

sinfI2005_VBA.doc

プログラミング演習

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 関数とメソッド 関数とメソッド Python には関数 (function) とメソッド (method) が有る モジュール内に def で定義されて居る物が関数 クラス内に def で定義されて居る物がメソッドに成る ( 正確にはクラスが

画像閲覧プログラム

チャットプログラム

dynabookガイド

わにわにパニックプログラム

回文作成支援プログラム

VB実用⑩ エクセル操作Ⅳ

アプリケーション

データベースプログラミング

PC STATION S200L seriesファーストステップガイド

草競馬プログラム

プレポスト【問題】

Microsoft Office PowerPoint 2007 セミナーテキスト基礎編 講習の手引き Microsoft Office PowerPoint 2007 Office Professional 2007 PowerPoint 2007 PowerPoint 2007 PowerPoi


リファレンス

パラパラ漫画

情報処理

VB実用③ アクセス操作Ⅰ

VB実用⑯ 印刷Ⅵ(Excel)

mySQLの利用

文書閲覧プログラム

データベース1

C#の基本

...Visual Studio 2015\Projects\MyHomePage 用サンプル \Database(Access2)\Database(Access2)\MainForm.cs 2 れを含めておかないと Database への更新がきかない oadp.fill(dtbl); dgvk

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

ICONファイルフォーマット

Microsoft Excel操作

第 1 章 VBA について 1 イントロダクション 校務で生徒や先生方のデータの集計など,Excel を使用することが多くなっています 日常,Excel で作業をしていると 同じ操作 を繰り返し行わなければいけないことが多くありませんか? この 同じ操作 を VBA を利用し, より業務を効率化さ

Transcription:

キー操作 VB 2005 9 今回の課題項目 キーセンス キーボードイベントへの応答 低レベルのキーボードハンドラの作成 (KeyPress KeyDown Keyp) KeyPress イベント KeyDown イベントと KeyUp イベント Shift Ctrl Alt のキー状態の検出 フォームレベルのキーボードハンドラの作成 遠隔キー入力 (SendKeys ステートメント ) 遠隔キー入力 今回の重点項目 キーセンス (KeyPress イベント KeyDown イベント KeyUp イベント ) 遠隔キー入力 (My.Computer.Keyboard オブジェクトの SendKeys メソッド ) -1-

キーセンス キーボードイベントへの応答 ユーザーとプログラムのインターフェイスには 主にマウスとキーボードが利用されて居る マウス操作やキー操作に依り イベントが発生し 様々な処理が出来る様に成る 此等の総ての動作は オペレーティングシステムの機能に依り自動的にサポートされて居るが 動作の変更や拡張を必要とする場合が有る 其の様な場合には キーイベントを使用して 動作の変更や拡張を行う事が出来る 猶 キーイベントで 標準キーボードの殆どのキーを処理するコードを記述する事が出来る 低レベルのキーボードハンドラの作成 キーイベントに応答する様にアプリケーションをプログラムする事を キーボードハンドラの作成と謂う キーボードハンドラは コントロールレベルとフォームレベルの 2 つのレベルで動作させる事が出来る 低レベルのコントロールレベルハンドラを作成すると コントロールでの応答をプログラミングする事が出来る フォームレベルハンドラでは フォームを先ずキーイベントに応答する様にプログラミングする事が出来る 其の後で フォーカスをフォーム上のコントロールに移し イベントをもう一度発生させたり 開始させる事が出来る フォームやキーボード入力を受け付けるコントロールは 下記の 3 種のキーボードイベントを認識する KeyPress : 文字を入力した時にイベントが発生する KeyDown : キーボード上の孰れかのキーを押した時にイベントが発生する KeyUp : キーボード上の孰れかのキーを離した時にイベントが発生する キーボードイベントを取得する事が出来るのは キー操作が行われた時にフォーカスを持つオブジェクト丈で有り Enabled プロパティ 及び Visible プロパティが真に設定されて居るオブジェクト丈がフォーカスを得る事が出来る 猶 フォームは コントロールが配置されて居ないか 又は 配置されて居る総てのコントロールが無効 又は 非表示に設定されて居る時に限り フォーカスを持つ事が出来る 但し フォームの KeyPreview プロパティを True を設定すると キーボードメッセージがフォーム上のコントロールに到達する前に フォームに依り受け取る事が出来る KeyDown イベントと KeyUp イベントは キーボードに応答する為の最も低いレベルのイベントで有る 此の 2 つのイベントを使用すると KeyPress イベントでは検出出来ないキー 及び キーの状態を検出する事が可能と成る 各キーボードイベントは 互いに影響を与え無い キーが押されると KeyDown イベントと KeyPress イベントが発生し 其のキーが離された時に KeyUp イベントが発生する KeyPress イベントで検出する事が出来ないキーが押されると KeyDown イベントが発生し 其の後 KeyUp イベントが発生する -2-

KeyPress イベント KeyPress イベントは キーボードから文字が入力されると発生する 文字と仕て認識する事の出来ないキーが押された時には 此のイベントは発生し無い 押されたキーの情報は 引数の KeyPressEventArgs.KeyChar プロパティを通じて 文字 (Char 型 ) と仕て 参照に依りイベントプロシージャに渡される 此のイベントでは 下記のキーの取得と設定が可能で有る 英字キー ( 大文字と小文字は区別される ) 数字キー ( フルキーとテンキーの両方 ) 記号キー ( キーボードより入力可能なキー ) Enter キー Ctrl キー (Ctrl キーとの併用 :Ctrl+A Ctrl+B Ctrl+Y Ctrl+Z 等 ) BackSpace キー (Ctrl+H と同じ ) キー e.keychar Asc(e.KeyChar) 英字キー "a" ~ "z" "A" ~ "Z" 97 ~ 122 65 ~ 90(Keys.A ~ Keys.Z) 数字キー "0" ~ "9" 48 ~ 57(Keys.D0 ~ Keys.D9) 記号キー " " "!" ~ "}" "~" 32 33 ~ 125 126 Enter キー 13(Keys.Return) Ctrl キー 0 ~ 31 BackSpace キー 8(Keys.Back) 併し 下記のキーの取得や設定は出来ない Tab キー Ins キーと Del キー Home キーと End キー PageUp キーと PageDown キー F1 ~ F12 の各キー Alt キー 方向キー KeyPress イベントは 文字以外のキー入力では発生しないが KeyDown イベントと KeyUp イベントは 文字以外のキー入力でも発生する Enter キーは フォームの AcceptButton プロパティに設定されて居るボタンが無い時 亦 Escape キーは CancelButton プロパティに設定されて居るボタンが無い時に限り KeyPress イベントが発生する 引数の KeyPressEventArgs.KeyChar は参照に依り渡されるので 此の値を変更する事に依り 実際に入力された文 字と異なる文字をオブジェクトに渡す事が出来る 猶 キー入力を取り消すには KeyPressEventArgs.Handled に True を設定する KeyPress イベントは フォーカスが設定されて居るオブジェクトに対して発生する 其の為 フォームに対して KeyPress イベントが発生するのは フォーム上に有効なコントロールが表示されて居ないか 又は フォームの KeyPreview プロパティが True に設定されて居る場合丈で有る 此の場合 KeyPress イベントは フォーム上のコントロールよりも先に フォームに依り認識される KeyPreview プロパティは 全体に共通のキーボード処理ルーチンを記述する場合に使用する 注意 Ctrl キーを押し乍ら @ キーを押した時は ANSI コードの 0 が返される Visual Basic では値が 0 の KeyChar は長さ 0 の文字列 ( ヌルストリング ) と仕て扱われる為 アプリケーションでは Ctrl キーを押し乍ら @ キーを押す操作を使用する時は 注意を要する -3-

KeyDown イベントと KeyUp イベント KeyDown イベントは キーを押した時 亦 KeyUp イベントは キーを離した時に発生する 此のイベントは キーボードの物理的な状態を示す物で有る 押されたキーの情報は KeyEventArgs.KeyCode プロパティを通じて キーコード (Keys 型 ) と仕て参照に依りイベントプロシージャに渡される KeyDown イベントと KeyUp イベントは キーボードに応答する為の最も低いレベルのイベントで有り 此等のイベントを使用すると KeyPress イベントでは検出する事の出来ない下記の様なキー 及び キーの状態を検出する事が出来る Shift Ctrl Alt キーとの同時押し下げ 方向キー PageUp PageDown キー 文字キー上の数字とテンキーの数字の区別 キーを押した時と離した時の応答の区別 メニューコマンドに割り当てられて居ないファンクションキー KeyDown イベントと KeyUp イベントでは 標準キーボードの殆どのコントロールキーが認識される 此れには F1~F16 のファンクションキー Home PageUp Del 等の編集キー 等の方向キー 及び テンキーが含まれる 此等のキーは キーコード定数か其れに相当する ASCII 値の孰れかを使用して識別する事が出来る 引数の KeyEventArgs.KeyCode は参照に依り渡されるので 此の値を変更する事に依り 実際に入力された文字と異なる文字をオブジェクトに渡す事が出来る 猶 キー入力を取り消すには KeyEventArgs.SuppressKeyPress に True を設定する 但し テキストボックスでは KeyUp イベントでは 入力した文字が表示されるので KeyDown イベントで処理する必要が有る KeyDown イベントと KeyUp イベントでは キーコードを受け取る為 大文字と小文字は同じキー入力と仕て認識される 即ち 同じキーに割り当てられて居る文字 ( 例えば A-a- ち ) は 同じキーと判断され 同じキーコードを返す 亦 同じ文字でも異なるキー ( 例えば 文字キーの 1 とテンキーの 1) の場合は 異なるキーコードを返す KeyDown イベントと KeyUp イベントは 下記のキー操作では発生し無い フォーム上に フォームの AcceptButton プロパティに設定されたボタンコントロールが有る場合の Enter キーの操作 フォーム上に フォームの CancelButton プロパティに設定されたボタンコントロールが有る場合の Esc キーの操作 Tab キーの操作 亦 KeyDown イベントと KeyUp イベントでは 通常キーと同時に押し下げを行う併用キー (Shift Ctrl Alt) の状態も検出する事が出来る 注意コントロールの中には ボタン ラジオボタン チェックボックスの様に方向キーイベントを認識し無い物が有る事に注意を要する 此等のコントロールで 方向キーを押すと他のコントロールにフォーカスが移動する -4-

Shift Ctrl Alt のキー状態の検出 マウスイベントとキーボードイベントでは イベント引数を使用して Shift Ctrl Alt の各キーの孰れが押されて居るかを調べる事が出来る 併用キー (Shift Ctrl Alt) の情報は KeyEventArgs.Alt Control Shift の各プロパティを通じてブール値 (Boolean 型 ) と仕て 参照に依りイベントプロシージャに渡される KeyEventArgs.Alt Control Shift プロパティでは 対応するキーが押されて居れば True 其れ以外は False と成る 亦 此等の組み合わせは KeyEventArgs.Modifiers プロパティで判断する事も出来る 下記の 2 文は 等価で有る If e.shift = True And e.control = True Then と If e.modifiers = Keys.Shift + Keys.Control Then 併用キー (Shift Ctrl Alt) は 修飾子キーとも呼ばれる 併用キーの調査には Keys 列挙体の Shift Control Alt を用いる ( 例えば Shift キーでは Shift ShiftKey RShiftKey LShiftKey の 4 種が定義されて居るが 併用キーと仕ての Shift キーの押し下げ状態を調査する為の正しい値は Shift で有る ) イベント引数に此等のプロパティが存在しない場合 ( 例えば Click イベントの EventArgs) 併用キーの押し下げ状態は Control クラスの ModifierKeys プロパティで調べる Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click If Control.ModifierKeys = Keys.Shift Then CType( sender, Control ).BackColor = Color.Red End If End Sub 猶 併用キーの状態は キーボードの現在の状態 ( 現在何のキーが押されて居るか等 ) にアクセスする為のプロパティや アクティブなウィンドウにキーストロークを送る為のメソッドが用意されて居る My.Computer.Keyboard オブジェクトを使用する事も出来る KeyDown イベントと KeyUp イベントでは 引数の KeyEventArgs.Shift を使用して 大文字と小文字を区別する事が出来る Private Sub TextBox1_KeyDown( ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.KeyEventArgs ) _ Handles TextBox1.KeyDown If (e.keycode = Keys.A) And (e.shift = True) Then MsgBox " 大文字の A キーが押されました " End If End Sub -5-

フォームレベルのキーボードハンドラの作成 KeyDown イベントと KeyUp イベントは 特定のオブジェクトに割り当てられて居る 同一フォーム上の総てのオブジェクトに適用されるキーボードハンドラを作成するには フォームの KeyPreview プロパティを True に設定する フォームの KeyPreview プロパティを True に設定すると 其のフォーム上のコントロールが KeyPress KeyUp KeyDown の各イベントを認識する前に フォームが此等のイベントを認識する 此れに依り 特定のキー入力に対して常に同じ応答 ( 処理 ) を行う様にする事が出来る フォームの KeyPreview プロパティが True に設定されて居る時 フォームは コントロールが認識する前にキーボードイベントを認識するが 其の後で 各コントロールも其のイベントを認識する 此の場合フォームのキーボードイベントプロシージャで KeyPress イベントの場合 引数の KeyPressEventArgs.Handled に True を設定するか 又は KeyDown イベントと KeyUp イベントの場合 KeyEventArgs.SuppressKeyPress に True を設定すると コントロールのキーボードイベントが発生し無い様にする事が出来る メニューコントロールにショートカットキーが定義されて居る場合は 其のキーが押された時に 其のメニューコントロールの Click イベントが自動的に発生し キーボードイベントは発生し無い 同様に フォーム上に フォームの AcceptButton プロパティに設定されたボタンコントロールが有る場合は Enter キーを押すと キーイベントでは無く 其のボタンの Click イベントが発生する 亦 フォーム上に フォームの CancelButton プロパティに設定されたボタンコントロールが有る場合は Esc キーを押すと キーイベントでは無く 其のコマンドボタンの Click イベントが発生する 亦 Tab キーは コントロールからコントロールへとフォーカスを移動する フォームの総てのコントロールが無効で有るか 又は TabStop プロパティが偽に設定され無い限り Tab キーのキーイベントは発生し無い キーを押して直ぐに離すと 3 つのイベントが 下記の順番で発生する KeyDown KeyPress KeyUp 併し キーを暫く押し続けると 下記の様な順番で イベントが発生する KeyDown KeyPress KeyDown KeyPress KeyUp 即ち キーを押し続けると KeyDown イベントと KeyPress イベントが繰り返してトリガーされ KeyUp イベントが発生するのは 最後にキーを離す時の 1 回丈で有る 此の KeyDown イベントと KeyPress イベントの繰り返しの間隔は キーボードのプロパティ ( コントロールパネル キーボードで設定可能 ) で設定されたキーボードのリピート率に依存する キーリピートの間隔は意外に短く 少し長くキーを押した場合 KeyDown イベントプロシージャや KeyPress イベントプロシージャに記述したコードは 繰り返し実行される事を考慮して コーディングを行う必要が有る -6-

遠隔キー入力 My.Computer.Keyboard オブジェクトの SendKeys メソッドを使用すると キーストロークをアクティブウィンドウに渡す事が出来る為 恰もキーボードから入力した時と同様の効果を得る事が出来る SendKeys ステートメントの書式は 下記の通りで有る My.Computer.Keyboard.SendKeys( 転送文字列 [, 制御処理 ] ) 転送文字列は 転送するキーストロークを表す文字列を指定する ( 制御キーの転送も可 ) 制御処理は ブール型の値で True を指定すると 処理が終了する迄 実行を一時中断し False を指定すると 処理の終了を待たずに次の行に制御を移す ( 省略時は True が設定される ) Dim ID As Integer ID = Shell( "CALC.EXE", AppWinStyle.NormalFocus ) AppActivate( ID ) My.Computer.Keyboard.SendKeys( "10", True ) My.Computer.Keyboard.SendKeys( "*", True ) My.Computer.Keyboard.SendKeys( "36", True ) My.Computer.Keyboard.SendKeys( "=", True ) キーを押しても表示されない文字 (Eneter や Tab 等 ) を指定する際に使うコードを 次の表に示す キー コード BackSpace {BACKSPACE} 又は {BS} Break {BREAK} CapsLock {CAPSLOCK} Clear {CLEAR} Delete {DELETE} 又は {DEL} {DOWN} End {END} Enter ( テンキー ) {ENTER} Enter ~ Esc {ESCAPE} 又は {ESC} Help {HELP} Home {HOME} Ins {INSERT} {LEFT} NumLock {NUMLOCK} PageDown {PGDN} PageUp {PGUP} Return {RETURN} {RIGHT} ScrollLock {SCROLLLOCK} Tab {TAB} {UP} F1 ~ F15 {F1} ~ {F15} -7-

Control.KeyPress イベントに依るキー入力の検証 機能 書式 解説 コントロールにフォーカスが有る時にキーが押されると発生するイベント Private Sub Procedure_Name( _ ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.KeyPressEventArgs _ ) Handles Object.KeyPress コントロールにフォーカスが有る時 ユーザーが ANSI 文字キーを押して離した時に発生する KeyPress イベントは フォーカスが設定されて居るオブジェクトに対して発生する フォームに対して KeyPress イベントが発生するのは フォーム上に有効なコントロールが表示されて居ないか 又は KeyPreview プロパティが True に設定されて居る場合丈で有る 亦 KeyPress イベントが発生するのは 出力可能な総てのキーボード上の文字 ( アルファベット 数字 記号 スペース等 ) 2 バイト文字 Ctrl キーとアルファベットか特殊キー (@ [ ] & =) の孰れかとの組み合わせ Enter キー Backspace キーが入力された時で有る KeyPress イベントプロシージャは テキストボックスコントロールやコンボボックスコントロールに対するユーザーの入力をチェックする時に便利で有る 入力された文字を 1 つ宛チェックしたり 入力と同時に書式を設定する時等に使用する 引数 KeyPressEventArgs の KeyChar プロパティは参照に依り渡されるので 此の値を変更する事に依り 実際に入力された文字と異なる文字をオブジェクトに渡す事が出来る KeyChar プロパティの値が変わると 表示される文字も変化する 猶 引数 KeyPressEventArgs の Handled プロパティを True に設定すると キー操作が取り消され オブジェクトは文字を受け取らない KeyChar プロパティの値は 文字で有り キーコードと修飾子を組み合わせて生成した整数値で構成される Keys 列挙体のメンバ ( 定数 ) と比較するには 下記の様にする If e.keychar = Microsoft.VisualBasic.ChrW( Keys.Return ) Then KeyPress イベントでは KeyDown イベントや KeyUp イベントとは異なり キーボードの物理的な状態では無く 入力された文字が返される為 ファンクションキー 編集キー 移動キー 及び 此等のキーと併用キー (Shift Ctrl Alt) との組み合わせ等 KeyPress イベントでは認識する事が出来ないキー操作を処理する必要が有る場合は KeyDown イベントや KeyUp イベントを使用する KeyPress イベントでは 大文字と小文字は異なるキーコード ( 文字 ) と仕て認識される 此れに対し KeyDown イベント 及び KeyUp イベントでは 引数 KeyEventArgs の KeyCode と Shift の 2 つのプロパティを使用して大文字と小文字を区別する KeyCode プロパティは 物理的なキー位置を示し A と a では同じ値に成る 一方 Shift プロパティは Shift キーが同時に押されたか何うかを示すので KeyCode プロパティと組み合わせる事に依り A と a を区別する事が出来る フォームの KeyPreview プロパティが真に設定されて居る場合 KeyPress イベントは フォーム上のコントロールよりも先に フォームに依り認識される KeyPreview プロパティは 全体に共通のキーボード処理ルーチンを記述する場合に使用する -8-

Control.KeyDown イベントと Control.KeyUp イベントに依るキー入力の検証 機能書式解説 コントロールにフォーカスが有る時にキーが押されると発生するイベント (KeyDown) コントロールにフォーカスが有る時にキーが離されると発生するイベント (KeyUp) Private Sub Procedure_Name( _ ByVal sender As System.Object, _ ByVal e As System.Windows.Forms. KeyEventArgs _ ) Handles Object.KeyDown Private Sub Procedure_Name( _ ByVal sender As System.Object, _ ByVal e As System.Windows.Forms. KeyEventArgs _ ) Handles Object.KeyUp コントロールにフォーカスが有る時 ユーザーが キーボードのキーを押した時 又は 離した時に発生する フォーカスが設定されて居るオブジェクトでは KeyDown イベント 及び KeyUp イベントに依り総てのキー操作を検出する事が出来る フォームに対して KeyDown イベントや KeyUp イベントが発生するのは フォーム上に有効なコントロールが表示されて居ないか 又は KeyPreview プロパティが True に設定されて居る場合丈で有る KeyDown イベント 及び KeyUp イベントは 通常 次の様な目的で用いられる ファンクションキーや PageUp PageDown キー等の特殊キーの検出 方向キー ( ) の検出 標準の併用キー (Shift Ctrl Alt) と各キーの組み合わせの検出 テンキーと標準の数字キーとの区別 キーを押した時と離した時の応答の区別 KeyDown イベント 又は KeyUp イベントは 其の時フォーカスが設定されて居るオブジェクトに対して発生する 操作されたキーの文字を調べる場合は KeyPress イベントを使用する KeyDown イベントと KeyUp イベントを使用すると キーが押された時と離された時の両方で異なる処理を記述する事が可能と成る KeyDown イベントと KeyUp イベントは 下記のキー操作では発生し無い フォーム上に フォームの AcceptButton プロパティに設定されたボタンコントロールが有る場合の Enter キーの操作 フォーム上に フォームの CancelButton プロパティに設定されたボタンコントロールが有る場合の Esc キーの操作 Tab キーの操作 KeyCode プロパティの値は キーコードで有り キーコードと修飾子を組み合わせて生成した整数値で構成される Keys 列挙体のメンバ ( 定数 ) と比較するには 下記の様にする If e.keycode = Keys.Return Then KeyDown イベント 及び KeyUp イベントでは 引数 KeyEventArgs の KeyCode プロパティと Shift プロパティを使用して大文字と小文字を区別する事が出来る KeyCode プロパティは 物理的なキー位置を示し A と a では同じ値に成る 一方 Shift プロパティは Shift キーが同時に押されたか何うかを示すので KeyCode プロパティと組み合わせる事に依り A と a を区別する事が出来る -9-

Form.KeyPreview プロパティに依るフォームでのキー入力の検証 機能 書式 解説 フォームのキーボードイベントの有効性を設定するプロパティ object.keypreview [= 値 ] キーイベントがフォーカスを持つコントロールに渡される前に フォームが其のイベントを受け取るか何うかを示す値を取得 設定する オブジェクトには 対象と成るフォームを指定する 値には イベントを受け取る順番をブール式で指定する 値を True に設定した場合は 先ずフォームがキーボードイベント (KeyPress KeyDown KeyUp の各イベント ) を受け取り 其の後でアクティブなコントロールがキーボードイベントを受け取る 亦 False に設定した場合は フォームはキーボードイベントを受け取らず アクティブなコントロールがキーボードイベントを受け取る 猶 値を省略した場合は False を指定したと看做される 此のプロパティは ユーザーからのキー入力に対する処理を個々のコントロールで行うのでは無く フォームで一括して処理する様なアプリケーションを作成する時に使用する 例えば ファンクションキーを使うアプリケーションでは キー入力に関するイベントを個々のコントロールに対するイベントと仕て受け取るよりも フォームで処理する方が効率的で有る フォームが表示されて居らず 其の中のコントロールが有効ならば 其のフォームが自動的に総てのキーボードイベントを受け取る キーボードイベントの処理をフォームレベル丈で行い コントロールにキーボードイベントを送らない様にするには フォームの KeyPress イベントで引数 KeyPressEventArgs の Handled プロパティを True に設定するか フォームの KeyDown イベントで引数 KeyEventArgs の SuppressKeyPress プロパティを True に設定する フォームがキーボードイベントを受け取る前に 其のキーボードイベントを受け取るコントロールが有る 例えば フォーカスがボタンコントロールに有る時の Enter キー 及び フォーカスがリストボックスコントロールに有る時の方向キー等が有る キーのリピート率と遅延率 キーボードの遅延率とは オートリピート開始迄の時間を表す物で ユーザーがキーを押してから Windows がキーのリピートを開始する迄の時間を謂う 亦 リピート率とは リピートの間隔を表す物で ユーザーがキーを押さえてから発生するキーイベントの頻度を謂う ゲーム等のリアルタイム入力が必要とされるアプリケーションに於いては 遅延が殆ど無く リピートが非常に高速に行われる事が望ましいが Visual Basic には 此れを直接制御する機能が無い 併し Windows API(Application Programming Interface) を利用すれば 遅延率とリピート率を実行時に変更する事が出来る Windows API の SystemParameterInfo は Windows の各種パラメータを取得し 設定する事の出来る関数で有る 此の関数を利用すれば 遅延率やリピート率を取得して設定する事も可能で有る 但し プログラム終了時には 必ず元の設定に戻して置く事が推奨される -10-

文字コード 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 0 DE 16 32 0 48 @ 64 P 80 ` 96 p 112 - タミ 1 SH 1 D1 17! 33 1 49 A 65 Q 81 a 97 q 113 アチム 2 SX 2 D2 18 " 34 2 50 B 66 R 82 b 98 r 114 イツメ 3 EX 3 D3 19 # 35 3 51 C 67 S 83 c 99 s 115 ウテモ 4 ET 4 D4 20 $ 36 4 52 D 68 T 84 d 100 t 116 エトヤ 5 EQ 5 NK 21 % 37 5 53 E 69 U 85 e 101 u 117 オナユ 6 AK 6 SN 22 & 38 6 54 F 70 V 86 f 102 v 118 ヲカニヨ 7 BL 7 EB 23 ' 39 7 55 G 71 W 87 g 103 w 119 ァキヌラ 8 BS 8 CN 24 ( 40 8 56 H 72 X 88 h 104 x 120 ィクネリ 9 HT 9 EM 25 ) 41 9 57 I 73 Y 89 I 105 y 121 ゥケノル A LF 10 SB 26 * 42 : 58 J 74 Z 90 j 106 z 122 ェコハレ B HM 11 EC 27 + 43 ; 59 K 75 [ 91 k 107 { 123 ォサヒロ C CL 12 28, 44 < 60 L 76 92 l 108 124 ャシフワ D CR 13 29-45 = 61 M 77 ] 93 m 109 } 125 ュスヘン E SO 14 30. 46 > 62 N 78 ^ 94 n 110 ~ 126 ョセホ F SI 15 31 / 47? 63 O 79 _ 95 o 111 DEL 127 ッソマ 網掛の文字は Microsoft Windows ではサポートされて居ない コード番号 8 9 10 13 27 は制御文字で 夫々れバックスペース タブ ラインフィード キャリッジリターン エスケープと仕て使われる Ctrl + @ A B C D E F G H I J K L M N O コード 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Ctrl + P Q R S T U V W X Y Z [ ] & = コード 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31-11-