ボタンをクリックしてアクションを実行します
ユーザーがアプリケーションを操作する最も簡単な方法は、ボタンを提供することです。 Visual Basic が提供する CommandButton コントロールを使用するか、アイコンなどのグラフィックスを含む Image コントロールを使用して、独自の「ボタン」を作成できます。
コマンドボタンの使用
ほとんどの Visual Basic アプリケーションにはコマンド ボタンがあり、ユーザーはボタンをタップするだけでアクションを実行できます。ユーザーがボタンを選択すると、アクションが実行されるだけでなく、ボタンが押されて離されたように見えます。ユーザーがボタンをクリックするたびに、Click イベント プロシージャが呼び出されます。 Click イベント プロシージャにコードを記述して、必要なアクションを実行します。
プログラムの実行中にコマンド ボタンを選択するには、さまざまな方法があります。
マウスでボタンをクリックします。
TAB キーを押して対応するボタンにフォーカスを移動し、SPACE キーまたは ENTER キーを押してボタンを選択します。この章で後述する「フォーカスの概要」を参照してください。
コマンドボタンのショートカット キー (ALT の下線付き文字) を押します。
コード内で CommandButton の Value プロパティを True に設定します。 cmdClose.Value=True
コードでコマンドボタンの Click イベントを呼び出します。 cmdClose_Click
コマンド ボタンがフォームの既定のコマンド ボタンである場合、フォーカスがコマンド ボタンではない他のコントロールに移動した場合でも、Enter キーを押すとボタンが選択されます。デザイン時に、Default プロパティを True に設定して、ボタンをフォームのデフォルトのコマンドボタンとして指定します。
CommandButton がフォームのデフォルトのキャンセル ボタンである場合、フォーカスが他のコントロールに移動しても、ESC キーを押すことでボタンを選択できます。設計時に、Cancel プロパティを True に設定して、ボタンをデフォルトのキャンセル ボタンとして指定します。これらの操作により、Visual Basic は Click イベント プロシージャを呼び出します。
「テストボタン」アプリ
Caption 属性を使用してボタンにテキストを表示し、ボタンの機能をユーザーに伝えます。図 3.4 では、コントロール サンプル アプリケーションのテスト ボタンの例には、ChangeSignal の Caption プロパティを持つ CommandButton が含まれています (この例は、Controls.vbp サンプル アプリケーションの Buttons.frm で機能します)。
S はこのボタンのショートカット キーであり、下線で表されていることに注意してください。 Caption 属性のテキストに (&) 記号を挿入すると、この記号に続く文字がボタンのショートカット キーになります (たとえば、Change&Signal)。
ユーザーがコマンド ボタンをクリックすると、コマンド ボタンの Click イベント プロセス内のコードが実行されます。この例では、ボタンをクリックするたびに、別の信号機アイコンに変わります。
CommandButton のプロパティの詳細については、第 7 章「Visual Basic の標準コントロールの使用」を参照してください。
テキストの表示と入力のためのコントロール
Label コントロールと TextBox コントロールは、テキストの表示と入力に使用されます。アプリケーションがフォームにテキストを表示する場合は Label を使用し、ユーザーがテキストを入力できるようにする場合は TextBox を使用します。 Labels のテキストは読み取り専用テキストですが、TextBox のテキストは編集可能なテキストです。
連続入力TextBoxなど、ユーザーが編集できるテキスト
フィールドまたはパスワードボックス
フォーム内のラベルの識別など、表示のみが可能なテキスト
フィールドまたはユーザーへの指示の表示
ラベルとテキストボックスについては、次のセクションで説明します。
ラベル付きテキストの表示 (vbconUsingLabels) ラベル コントロールの使用に関する基本的な知識。
TextBox を使用した TextBox の操作の基本 (vbconWorkingWithTextBox)。
テキストをラベル付きで表示する
Label コントロールによって表示されるテキストは、ユーザーが直接変更することはできません。独自の Caption プロパティを持たない TextBox や ScrollBar などのコントロールは、Label で識別できます。実際にラベルに表示されるテキストは、Caption プロパティによって制御されます。このプロパティは、設計時に [プロパティ] ウィンドウで設定することも、実行時にコードで割り当てることもできます。
デフォルトでは、タイトルは Label コントロールの唯一の表示部分です。ただし、BorderStyle プロパティを 1 に設定すると (設計時に設定できます)、Label には枠線が表示され、TextBox のように見えます。ラベルの BackColor、BackStyle、ForeColor、および Font プロパティを設定して、ラベルの外観を変更することもできます。
内容に合わせてラベルのサイズを変更します
単行ラベルのタイトルは、デザイン時に「プロパティ」ウィンドウで指定できます。しかし、より長いタイトル、または実行時に変更される可能性のあるタイトルを入力したい場合はどうすればよいでしょうか? Label には、より長いまたは短いタイトルに合わせてコントロールのサイズを変更できるように、AutoSize と WordWrap という 2 つのプロパティが用意されています。
AutoSize プロパティは、コンテンツに合わせてコントロールのサイズを自動的に変更するかどうかを決定します。このプロパティが True に設定されている場合、図 3.5 に示すように、ラベルはその内容に応じて水平方向に変化します。
図 3.6 に示すように、WordWrap プロパティを使用すると、ラベルの幅は変更されずに、内容に応じてラベルが垂直方向に変更されます。この例の動作バージョンについては、アプリケーション例 Controls.vbp の WordWrap.frm を参照してください。
Controls.vbp で AutoSize の例を実行すると、WordWrap を同時に使用するには両方のチェック ボックスをオンにする必要があることがわかります。これは、Label の WordWrap プロパティが機能するには、AutoSize を True に設定する必要があるためです。ラベルの幅は、1 つの単語の幅がコントロールの現在の幅を超える場合にのみ増加します。
Label コントロールのプロパティの詳細については、第 7 章「Visual Basic の標準コントロールの使用」を参照してください。
テキストボックスの使用
TextBox は、ユーザーがテキストを入力したり、テキストを表示したりできる汎用コントロールです。 TextBox の Locked プロパティが True に設定されていない限り、TextBox を使用して、ユーザーに変更してほしくないテキストを表示することはできません。
TextBox に表示される実際のテキストは、Text プロパティによって制御されます。 Text プロパティは、設計時に [プロパティ] ウィンドウで設定する方法、実行時にコードを介して設定する方法、または実行時にユーザー入力によって設定する方法の 3 つがあります。 TextBox の現在の内容は、実行時に Text プロパティを読み取ることで取得できます。
複数行の TextBox と WordWrap
TextBox にはデフォルトで 1 行のテキストのみが表示され、ScrollBar は表示されません。テキストが使用可能なスペースより長い場合は、テキストの一部のみが表示されます。 MultiLine プロパティと ScrollBars プロパティ (プログラムの設計時にのみ設定可能) を設定することで、TextBox の外観と動作を変更できます。
ScrollBars プロパティと ScrollBar コントロールを混同しないように注意してください。ScrollBar コントロールは TextBox に属さず、独自のプロパティ セットを持っています。
MultiLine プロパティを True に設定すると、TextBox は実行時に複数行のテキストを受け入れたり表示したりできるようになります。水平の ScrollBar がない限り、複数行の TextBox 内のテキストは単語に応じて自動的に折り返されます。 ScrollBars プロパティのデフォルト値は 0 (なし) に設定されます。自動ワードラップにより、ユーザーは行末に改行を挿入する手間が省けます。テキスト行が表示長を超える場合、TextBox はテキストを自動的に次の行に折り畳んで表示します。
設計時には、[プロパティ] ウィンドウに改行を入力できません。プロセス中に、復帰とその後の改行文字 (ANSI 文字 13 および 0) を挿入することによって、行ブレークポイントを生成できます。定数 vbCrLf を使用して、キャリッジ リターンとライン フィードの組み合わせを挿入することもできます。たとえば、次のイベント プロシージャは、フォームの読み込み時に複数行の TextBox (Text1) に 2 行のテキストを配置する例です。
サブフォーム_ロード()
Text1.Text=ここに 2 行あります_
&vbCrLf&inテキストボックス
EndSub
TextBox のテキストを使用する
TextBox の SelStart、SelLength、および SelText プロパティを使用すると、TextBox の挿入ポイントと選択動作を制御できます。これらのプロパティは実行時にのみ使用できます。
TextBox が最初にフォーカスを受け取ったとき、TextBox のデフォルトの挿入ポイントとカーソル位置はテキストの左端にあります。ユーザーはキーボードとマウスを使用してそれらを移動できます。 TextBox がフォーカスを失ってから再びフォーカスを取り戻すと、挿入ポイントの位置はユーザーが最後に設定した位置と同じになります。
場合によっては、ユーザーの設定と一致しない可能性があります。たとえば、ワード プロセッシング アプリケーションでは、ユーザーは既存のテキストの後に新しい文字を表示したいと考えます。データ入力アプリケーションでは、ユーザーは自分の入力を元のエントリに置き換えることを望みます。 SelStart プロパティと SelLength プロパティを使用すると、ユーザーは必要に応じて TextBox の動作を変更できます。
SelStart プロパティは、テキスト文字列内の挿入ポイントを示す数値で、0 は左端の位置を表します。 SelStart プロパティ値がテキスト内の文字数以上の場合、図 3.7 に示すように、挿入ポイントは最後の文字の後に配置されます。この例の動作バージョンについては、アプリケーション例 Controls.vbp の Text.frm を参照してください。 SelLength プロパティは、挿入ポイントの幅を設定する値です。 SelLength を 0 より大きい値に設定すると、現在の挿入ポイントから始まる SelLength 文字が選択されて強調表示されます。図 3.8 は、選択のパフォーマンスを示しています。
テキストの一部が選択されている場合、ユーザーが入力したテキストが選択したテキストを置き換えます。場合によっては、「貼り付け」コマンドを使用して、元のテキストを新しいテキストに置き換えることもできます。 SelText プロパティは、実行時に値を割り当てて、現在選択されているテキストを置き換えることができるテキスト文字列です。選択されたテキストがない場合、SelText は現在の挿入ポイントにテキストを挿入します。
TextBox コントロールのプロパティの詳細については、第 7 章「Visual Basic の標準コントロールの使用」を参照してください。
TextBox コントロールのプロパティの詳細については、第 7 章「Visual Basic の標準コントロールの使用」を参照してください。
->