一部のプログラムには、いくつかのショートカット (Shift キーで最小化、ESC キーで終了、Ctrl+S で保存、Alt+x で終了など) があることがわかっています。 Win32 API を使用して実行できるという紹介が過去にいくつかありましたが、実際には VB 自体がこの機能をすでに提供しています。
新しいフォーム Form1 を作成しましょう。キーボード操作については、KeyPress()、KeyDown、KeyUp の 3 つのイベントが表示されます。以下にそれぞれを紹介します。
KeyPress() イベントは、ユーザーが ANSI キーを押して放したときに発生します (ANSI は、表示される ASCII 文字 1 ~ 127)。
文法
部分的な説明
object は、値がリスト内のオブジェクトに「適用」されるオブジェクト式です。
Index は、コントロール配列内のコントロールを一意に識別する整数です (コントロール配列でのみ使用可能)。
keyascii は、標準の数値 ANSI キー コードを返す整数です。 Keyascii はオブジェクトを参照によって渡し、変更を可能にします。
別のキャラクターを送信してください。 keyascii を 0 に変更すると、キーストロークがキャンセルされ、オブジェクトは文字を受信しなくなります。
説明する
フォーカスのあるオブジェクトがこのイベントを受け取ります。フォームは、KeyPreview プロパティが True に設定されている場合にのみ、このイベントを受信できます。 KeyPress イベントは、印刷可能なキーボード文字、標準アルファベットの文字、または CTRL キーおよび ENTER キーまたは BACKSPACE キーと組み合わせたいくつかの特殊文字の 1 つを参照できます。 KeyPress() イベント プロシージャは、TextBox または ComboBox コントロールに入力されたキーストロークをインターセプトする場合に便利です。キーストロークの有効性を即座にテストしたり、入力された文字の書式を設定したりできます。 keyascii パラメータの値を変更すると、表示される文字が変わります。
次の式を使用して、keyascii パラメータを文字に変換できます。
説明する
どちらのイベントでも、フォーカスされたオブジェクトはすべてのキーストロークを受け取ります。フォームは、表示されている有効なコントロールがない場合にのみフォーカスを取得できます。 KeyDown() および KeyUp() イベントはほとんどのキーに適用できますが、最も一般的に適用されるのは、ファンクション キー、ナビゲーション キー、キーボード修飾キー、およびキーの組み合わせなどの拡張文字キーであり、テンキーパッドと通常の数字キーを区別します。キーを押すことと離すことの両方に応答する必要がある場合は、KeyDown および KeyUp イベント プロシージャを使用できます。
KeyDown イベントと KeyUp イベントは、次の状況では参照できません: Default プロパティが True に設定されている場合、フォームに CommandButton コントロールと ENTER キーがある。フォームには CommandButton コントロールがあり、Cancel プロパティが True に設定されている場合、ESC キー、TAB キー、KeyDown および KeyUp は 2 つのパラメータを使用して各文字の大文字と小文字の形式を解釈します。 keycode - 物理キーを表示します (A を置き換えます)と a 同じキーとして返します)、shift+key キーの状態をシフト表示し、A または a のいずれかを返します。
シフト パラメーターをテストする必要がある場合は、パラメーターで定義されたシフト定数を使用できます。この定数には次の値があります。
定数値の説明
vbShiftMask 1 HIFT キー ビット
シールド。
VbCtrlMask 2 CTRL キー
ビットマスク。
VbAltMask 4 ALT キー ビット
シールド。
この定数はビット マスクとして機能し、任意のキーの組み合わせをテストするために使用できます。
注: KeyPreview プロパティが True に設定されている場合、フォームはフォーム上のコントロールよりも前にこのイベントを受け取ります。 KeyPreview プロパティを使用して、グローバル キーボード処理ルーチンを作成できます。
上記の知識があれば、ショートカット キーを使用して完璧なプログラムを作成できます。たとえば、プログラムでは、保存するには Ctrl+S、最小化には Shift、終了には Alt+X と ESC を使用する必要があります。
まず、VB を起動して新しい EXE ファイルを選択し、Form1 フォーム上で TextBox をプルし、Form1 の KeyPreview プロパティを True に設定します。Form1 をダブルクリックし、Form の KeyPress イベントを選択して、次のコードを入力します。