手順 3: ゲームの終了
ゲームを終了させるには、Finish ラベルが機能するように設定します。そのためには、ラベルの MouseEnter イベントに対するイベント ハンドラーを追加します。
[!メモ]
イベント ハンドラーについては、「チュートリアル 1: ピクチャ ビューアーの作成」で説明しました。ほとんどのコントロールには、発生させることができるさまざまなイベントがあります。ピクチャ ビューアーでは、Button コントロールの Click イベントと CheckBox コントロールの CheckChanged イベントを使用しました。このチュートリアルでは、Label コントロールの MouseEnter イベントを使用します。このイベントは、マウス ポインターがコントロールに入るたびに発生します。Label コントロールには 50 個ほどのイベントがありますが、そのほとんどが DoubleClick、Resize、TextChanged のようなわかりやすい名前になっています。イベント名の一覧については、このチュートリアルで後ほど説明します。
このトピックのビデオ版については " " を参照してください。
ゲームを終了させるには
finishLabel コントロールを選択し、[プロパティ] ウィンドウの上部にある [イベント] アイコン (稲妻のアイコン) をクリックします。このアイコンをクリックすると、コントロールのプロパティの代わりに、コントロールのイベントが表示されます。プロパティの一覧に戻るには、[プロパティ] アイコンをクリックします。ここでは、[プロパティ] ウィンドウを、そのまま finishLabel コントロールのすべてのイベントが表示された状態にします。MouseEnter イベントが表示されるまで下にスクロールします。アイコンと MouseEnter イベントは次のように表示されます。
イベントのアイコン
プロパティのアイコン
MouseEnter イベント
MouseEnter という単語をダブルクリックします。これにより、自動的にイベント ハンドラー メソッドがフォームに追加され、コード エディターに次のように表示されます。
Private Sub finishLabel_MouseEnter(sender As System.Object, e As System.EventArgs) Handles finishLabel.MouseEnter End Sub
private void finishLabel_MouseEnter(object sender, EventArgs e) { }
このイベント ハンドラー メソッドは、マウス ポインターがラベルに入るたびに実行されます。
メッセージ ボックスを開いて "Congratulations" と表示してから、プログラムが終了するようにします。そのためには、次のコード行 (およびコメント) を追加します。
Private Sub finishLabel_MouseEnter(sender As System.Object, e As System.EventArgs) Handles finishLabel.MouseEnter ' Show a congratulatory MessageBox, then close the form. MessageBox.Show("Congratulations!") Close() End Sub
private void finishLabel_MouseEnter(object sender, EventArgs e) { // Show a congratulatory MessageBox, then close the form. MessageBox.Show("Congratulations!"); Close(); }
[!メモ]
finishLabel_MouseEnter() メソッドに 2 つのステートメントが含まれています。最初のステートメントは Show() というメソッドを呼び出しています。このメソッドは、かっこ内に記述されたすべてのテキストを含むメッセージ ボックスを開きます。
IDE を使用してコードを調べると、内容をより詳しく確認できます。マウス ポインターを MessageBox という単語の上に置きます。次のツールヒントが表示されます。
Tooltip
[!メモ]
IDE には、System.Windows.Forms.MessageBox というクラスがあり、呼び出した Show() メソッドがそのクラス内にあることが示されます。完全に理解しなくてもメッセージ ボックスが機能するように設定することはできますが、追加の情報が役に立つ場合もあります。
2 つ目のステートメントに関しては、どのフォームにもフォームを閉じる Close() という組み込みのメソッドがあります。プログラムによっては、複数のウィンドウをユーザーが切り替えることができる場合があります。そのようなプログラムでこのメソッドを使用した場合、現在のウィンドウは閉じますが、プログラムの残りの部分はそのまま実行されます (たとえば、同時に複数の Microsoft Office Word 文書を開いている場合、1 つの文書ウィンドウを閉じるとその文書は閉じますが、Office Word は開いたままになります)。ただし、今回のようなウィンドウが 1 つだけのプログラムでは、そのウィンドウを閉じるとプログラムの実行が停止するため、フォームを閉じるとプログラムが終了します。
プログラムを保存し、実行します。マウス ポインターを Finish ラベルの上に移動します。メッセージが開き、プログラムが終了します。
続行または確認するには
チュートリアルの次の手順に進むには、「手順 4: ゲームを再開するメソッドの追加」を参照してください。
チュートリアルの前の手順に戻るには、「手順 2: ラベルを使用した迷路の作成」を参照してください。