タブオーダーを設定する
たとえば、Text1 および Text2 という名前の 2 つの TextBox を作成し、次に Commandl という名前のコマンドボタンを作成するとします。アプリケーションが起動すると、Text1 にフォーカスが設定されます。 TAB キーを押すと、図 3.20 に示すように、作成された順序でコントロール間をフォーカスが移動します。
TabIndex プロパティを設定すると、コントロールのタブ オーダーが変更されます。コントロールの TabIndex プロパティは、タブ オーダー内での位置を決定します。デフォルトのルールによれば、最初に作成されたコントロールの TabIndex 値は 0、2 番目のコントロールの TabIndex 値は 1 などとなります。コントロールのタブ オーダーの位置を変更すると、挿入と削除を反映するために、Visual によって他のコントロールのタブ オーダーの位置が自動的に再番号付けされます。たとえば、Command1 をタブ キー シーケンスの最初にすると、次の表に示すように、他のコントロールの TabIndex 値が自動的に上方に調整されます。
番号付けは 0 から始まるため、TabIndex の最大値は常にタブ オーダー内のコントロールの数より 1 減ります。 TabIndex プロパティの値がコントロールの数より大きい場合でも、Visual Basic はこの値をコントロールの数から 1 を引いた値に変換します。
フォーカスを取得できないコントロール、および無効なコントロールや非表示のコントロールには TabIndex プロパティがないため、タブ オーダーに含まれないことに注意してください。 TAB キーを押すと、これらのコントロールはスキップされます。
タブ オーダー内のコントロールを削除する
通常、実行時に TAB キーを押すと、タブ シーケンス内の各コントロールが選択されます。コントロールの TabStop プロパティを False(0) に設定して、タブ オーダーからコントロールを削除します。
TabStop プロパティが False に設定されているコントロールは、タブ キーが押されたときにコントロールがスキップされることを除き、実際のタブ オーダーでの位置を維持します。
OptionButton グループにはタブ ステーションが 1 つだけあることに注意してください。選択したボタン (つまり、値が True であるボタン) の TabStop プロパティは自動的に True に設定されますが、他のボタンの TabStop プロパティは False になります。
メニューの基本
アプリケーションがユーザーに一連のコマンドを提供する場合、メニューはコマンドをグループ化し、ユーザーが簡単にアクセスできるようにする便利な方法を提供します。
図 3.21 は、無題フォームのメニュー インターフェイス要素を示しています。
メニュー バーはフォームのタイトル バーのすぐ下に表示され、1 つ以上のメニュー タイトルが含まれます。メニューのタイトル(「ファイル」など)をクリックすると、メニュー項目を含むリストがプルダウンされます。メニュー項目には、コマンド (新規作成や終了など)、区切り文字、サブメニュー タイトルを含めることができます。ユーザーに表示される各メニュー項目は、メニュー エディターで定義されたメニュー コントロールに対応します (メニュー エディターについては、この章で後述します)。
アプリケーションをシンプルで使いやすくするには、メニュー項目を機能別にグループ化する必要があります。たとえば、図 3.21 のファイル関連コマンド「新規作成」、「開く」、および「名前を付けて保存」はすべて「ファイル」メニューにリストされています。一部のメニュー項目は、アプリケーションを閉じる「ファイル」メニューの「終了」メニュー項目など、アクションを直接実行します。他のメニュー項目には、アプリケーションがアクションを実行するために必要な情報の入力をユーザーに求めるウィンドウであるダイアログ ボックスが表示されます。これらのメニュー項目の後には省略記号 (...) が続く必要があります。たとえば、[ファイル] メニューから [名前を付けて保存...] を選択すると、[ファイルに名前を付けて保存] ダイアログ ボックスが表示されます。
メニュー コントロールは他のオブジェクトと同様にオブジェクトであり、その外観と動作を定義するプロパティがあります。キャプション プロパティ、有効および表示プロパティ、チェック済みプロパティ、およびその他のプロパティは、設計時または実行時に設定できます。メニュー コントロールには、Click イベントというイベントが 1 つだけ含まれています。このイベントは、メニュー コントロールがマウスまたはキーボードで選択されたときに呼び出されます。
メニュー コントロールの詳細については、第 6 章「ユーザー インターフェイスの作成」の「メニュー エディタを使用したメニューの作成」を参照してください。
ポップアップメニュー
ポップアップ メニューは、図 3.22 に示すように、フォーム上に表示され、メニュー バーとは独立したフローティング メニューです。ポップアップ メニューに表示される項目は、マウスの右ボタンを押したときのポインタの位置に依存するため、ポップアップ メニューはコンテキスト メニューとも呼ばれます (Windows 95 では、マウスの右ボタンをクリックするとコンテキストがアクティブになります)。 ) ポップアップ メニューは、一般的なコンテキスト コマンドにアクセスする効率的な方法を提供するために使用する必要があります。たとえば、TextBox を右クリックすると、コンテキスト メニューが表示されます (図 3.22 を参照)。
少なくとも 1 つのメニュー項目を含むメニューは、実行時にポップアップ メニューとして表示できます。ポップアップ メニューを表示するには、PopupMenu メソッドを使用します。
ポップアップ メニューの詳細については、第 6 章「ユーザー インターフェイスの作成」の「メニュー エディタを使用したメニューの作成」を参照してください。
メニューエディタを使用する
「メニュー エディタ」を使用すると、既存のメニューに新しいコマンドを追加したり、既存のメニュー コマンドを独自のコマンドに置き換えたり、新しいメニューやメニュー バーを作成したり、既存のメニューやメニュー バーを変更および削除したりできます。メニュー エディタの主な利点はその使いやすさです。メニューは、最小限のプログラミングで完全にインタラクティブな方法でカスタマイズできます。
メニューエディタを表示するには、
図 3.23 に示すように、[ツール] メニューで [メニュー エディタ] を選択します。
ほとんどのメニュー コントロールのプロパティは、メニュー エディタを使用して設定できます。同様に、すべてのメニュー プロパティは [プロパティ] ウィンドウで使用できます。通常、メニューはメニュー エディタで作成しますが、個々のプロパティをすばやく変更するには、プロパティ ウィンドウを使用します。
メニューの作成とメニュー エディタの使用の詳細については、第 6 章「ユーザー インターフェイスの作成」の「メニュー エディタを使用したメニューの作成」を参照してください。
ユーザーにダイアログボックスを表示する
Windows ベースのアプリケーションでは、ダイアログ ボックスは、アプリケーションの実行を継続するため、またはユーザーに情報を表示するために必要なデータの入力をユーザーに求めるために使用されます。ダイアログ ボックスは、次の 3 つの方法のいずれかで作成できる特別なタイプのフォーム オブジェクトです。
MsgBox 関数または InputBox 関数を使用するコードでは、事前定義されたダイアログ ボックスを作成できます。
標準フォームを使用するか、既存のダイアログ ボックスをカスタマイズして、カスタム ダイアログ ボックスを作成します。
CommonDialog コントロールを使用して、印刷やファイルを開くなどの標準ダイアログ ボックスを作成します。
図 3.24 は、MsgBox 関数を使用して事前定義されたダイアログ ボックスを作成する例です。
コードで MsgBox 関数を呼び出すと、ダイアログ ボックスが表示されます。コードは次のとおりです。
ファイルを開こうとしたときに MsgBox エラーが発生しました、&vbCrLf& 再試行してください。、vbExclamation、TextEditor
MsgBox 関数には、メッセージ テキスト、ダイアログ ボックスの種類を決定する定数 (数値)、およびタイトルの 3 つの情報または 3 つのパラメーターを指定する必要があります。スタイルではボタンとアイコンのさまざまな組み合わせを使用できるため、ダイアログ ボックスの作成が簡単になります。
ほとんどのダイアログ ボックスはユーザーの操作を必要とするため、通常はモーダル ダイアログ ボックスとして表示されます。アプリケーションの他の部分を使用し続ける前に、モーダル ダイアログ ボックスを閉じる (非表示にするかアンロードする) 必要があります。たとえば、他のフォームまたは他のダイアログ ボックスに切り替える前に [OK] または [キャンセル] をクリックする必要がある場合、このダイアログ ボックスはモーダル ダイアログ ボックスです。
ダイアログ ボックスと他のフォームの間でフォーカスを移動できるようにするために、モードレス ダイアログ ボックスを閉じる必要はありません。ダイアログ ボックスが表示されている間、現在のアプリケーションの他の場所で作業を続けることができます。モードレス ダイアログ ボックスはまれですが、続行する前にアプリケーションが応答を必要とするため、通常は表示されます。 Visual Basic の [編集] メニューの [検索] ダイアログ ボックスはモードレス ダイアログ ボックスです。モードレス ダイアログ ボックスを使用して、頻繁に使用されるコマンドや情報を表示します。
詳細情報ダイアログ ボックスの作成の詳細については、第 6 章「ユーザー インターフェイスの作成」を参照してください。
->