Étape 3 : terminer le jeu
Pour terminer le jeu, vous activez le contrôle Label Finish.Pour ce faire, vous ajoutez un gestionnaire d'événements pour l'événement MouseEnter du contrôle Label.
[!REMARQUE]
Si vous avez déjà effectué le Didacticiel 1: créer une visionneuse d'images, les gestionnaires d'événements doivent vous être familiers.La plupart des contrôles peuvent déclencher plusieurs événements différents.La visionneuse d'images utilisait l'événement Click du contrôle Button et l'événement CheckChanged du contrôle CheckBox.Dans ce didacticiel, vous utilisez l'événement MouseEnter du contrôle Label, qui se déclenche chaque fois que le pointeur de la souris entre dans le contrôle.Le contrôle Label a plus d'une cinquantaine événements.La plupart ont des noms explicites, comme DoubleClick, Resize et TextChanged.Une liste des noms d'évènements est disponible dans les prochaines étapes de ce didacticiel.
Pour obtenir une version vidéo de cette rubrique, consultez Tutorial 2: Create a Maze in Visual Basic - Video 2 ou Tutorial 2: Create a Maze in C# - Video 2.
Pour terminer le jeu
Sélectionnez le contrôle finishLabel, puis cliquez sur l'icône Événements (représentée sous la forme d'un éclair) en haut de la fenêtre Propriétés.Lorsque vous cliquez dessus, elle affiche les événements du contrôle et non ses propriétés.Vous pouvez revenir à la liste des propriétés en cliquant sur l'icône Propriété.Pour le moment, gardez la fenêtre Propriétés telle qu'elle est pour afficher tous les événements du contrôle finishLabel.Faites défiler jusqu'à l'événement MouseEnter.Les icônes et l'événement MouseEnter sont affichés comme suit.
Icône Événement
Icône Propriété
MouseEnter (événement)
Double-cliquez sur le mot MouseEnter.Ensuite, l'IDE ajoute automatiquement une méthode de gestionnaire d'événements à votre formulaire et vous l'affiche dans l'éditeur de code, comme suit.
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) { }
Cette méthode de gestionnaire d'événements s'exécute chaque fois que le pointeur de la souris entre dans le contrôle Label.
Vous voulez que le programme ouvre une boîte de message affichant « Félicitations » avant de se fermer.Pour ce faire, ajoutez des lignes de code (avec un commentaire), comme suit.
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(); }
[!REMARQUE]
Votre méthode finishLabel_MouseEnter() comporte deux instructions.La première instruction appelle la méthode Show() qui ouvre une boîte de message affichant le texte que vous avez inséré dans les parenthèses.
Pour analyser en détail ce qui se passe, explorez votre code à l'aide de l'IDE.Placez le pointeur de la souris au-dessus du mot MessageBox.L'info-bulle suivante doit s'afficher :
Info-bulle
[!REMARQUE]
L'IDE indique qu'il existe une classe appelée System.Windows.Forms.MessageBox, et que la méthode Show() que vous avez appelée se trouve à l'intérieur de cette classe.Vous n'avez pas besoin de tout comprendre pour faire apparaître cette boîte de message. Toutefois, quelques précisions peuvent s'avérer utiles.
Concernant la deuxième instruction, chaque formulaire dispose d'une méthode intégrée appelée Close() qui entraîne la fermeture du formulaire.Certains programmes ont plusieurs fenêtres entre lesquelles l'utilisateur peut basculer.Lorsque vous travaillez sur un tel programme, vous pouvez fermer la fenêtre active, mais le reste du programme ne cessera pas de fonctionner.(Par exemple, si vous avez ouvert plusieurs documents Microsoft Office Word à la fois, un document se fermera en même temps que sa fenêtre, mais Office Word restera ouvert.) Toutefois, dans un programme comme celui-ci, où il n'existe qu'une seule fenêtre, le programme cessera de fonctionner si vous fermez cette fenêtre. En d'autres termes, votre programme s'arrêtera si vous fermez le formulaire.
Enregistrez et exécutez votre programme.Placez le pointeur de votre souris sur le contrôle Label Finish.Il doit ouvrir le message, puis fermer le programme.
Pour continuer ou examiner
Pour passer à l'étape suivante du didacticiel, consultez Étape 4 : ajouter une méthode pour redémarrer le jeu.
Pour revenir à l'étape précédente du didacticiel, consultez Étape 2 : générer votre labyrinthe à l'aide d'étiquettes.