この記事では、フォーム コントロールに KeyPress イベントを使用する方法について説明します。
元の製品バージョン: Visual FoxPro
元の KB 番号: 140296
まとめ
多くの開発者は、ON KEY LABEL を使用して、特定のキー (通常は関数キー) を押したときに実行されるプログラムまたはプログラム内のプロシージャを割り当てます。 ただし、ON KEY LABEL 割り当てがフォーム内のコントロールに固有である場合は、そのコントロールの KeyPress イベントを使用することをお勧めします。
詳細
KeyPress イベントは、次のフォーム コントロールで使用できます。
CheckBox、ComboBox、CommandButton、EditBox、Form、ListBox、OptionButton、Spinner、TextBox
このイベントを使用して、特定のキーが押されているかどうかを確認できます。 KeyPress イベントを使用して関数キーに基づいてアクションを実行する場合は、次の表に示すように関数キーの値を使用する必要があります。
Key Alone Shift Ctrl Alt
------------------------------------
F1 28 84 94 104
F2 -1 85 95 105
F3 -2 86 96 106
F4 -3 87 97 107
F5 -4 88 98 108
F6 -5 89 99 109
F7 -6 90 100 110
F8 -7 91 101 111
F9 -8 92 102 112
F10 -9 93 103 113
F11 133 135 137 139
F12 134 136 138 140
キー値の詳細については、Visual FoxPro ヘルプ ファイルの INKEY()
関数を参照してください。
ステップ バイ ステップの例
次の手順では、KeyPress イベントの使用方法を示します。
フォームを作成し、その上にテキスト ボックスを配置します。
テキスト ボックスの
ControlSource
プロパティに、「 mykey (または必要なその他の変数)」と入力します。テキスト ボックスの KeyPress イベントに次のコードを配置します。
LPARAMETERS nKeyCode, nShiftAltCtrl *: The previous line of code is already contained in the KeyPress event *: by default. DO CASE CASE nKeyCode = 28 WAIT WINDOW "The F1 Key has been pressed" NOWAIT mykey = "F1 Key" ThisForm.Refresh CASE nKeyCode = -4 WAIT WINDOW "The F5 Key has been pressed" NOWAIT mykey = "F5 Key" ThisForm.Refresh ENDCASE
フォームの Load イベントに次のコードを配置します。
CLEAR MACROS SET HELP OFF *: This will disable FoxPro's default function key assignments.
フォームの Destroy イベントに次のコードを配置します。
RESTORE MACROS SET HELP ON *: This will restore FoxPro's default function key assignments.
フォームにコマンド ボタンを配置し、クリック イベントに次のコードを配置します。
ThisForm.Release
フォームを保存して実行します。 F1 キーまたは F5 キーを押すと、適切な WAIT WINDOW メッセージが表示され、テキスト ボックスが更新されます。