Étape 4 : ajouter un gestionnaire d'événements Click à chaque contrôle Label
Le jeu de combinaisons fonctionne comme suit :
Lorsqu'un joueur clique sur l'une des cases dont l'icône est masquée, le programme affiche l'icône en modifiant sa couleur en noir.
Le joueur clique ensuite sur une autre icône masquée.
Si les deux icônes sélectionnées sont identiques, elles restent visibles.Dans le cas contraire, elles sont à nouveau masquées.
Pour que votre programme suive ces principes, vous devez ajouter un gestionnaire d'événements Click qui modifiera la couleur du contrôle Label sur lequel le joueur a cliqué.
Pour ajouter un gestionnaire d'événements Click à chaque contrôle Label
Allez dans le Concepteur Windows Forms et cliquez sur le premier contrôle Label pour le sélectionner.Ensuite, maintenez la touche CTRL enfoncée tout en cliquant sur chacun des autres contrôles Label pour les sélectionner.Assurez-vous que chaque contrôle Label est sélectionné.
Ensuite, allez sur la page Événements dans la fenêtre Propriétés.Faites défiler jusqu'à l'événement Click et tapez label_Click dans la zone, comme indiqué dans l'image suivante.
Fenêtre Propriétés affichant l'événement Click
Appuyez sur ENTRÉE.L'IDE ajoute un gestionnaire d'événements Click appelé label_Click() au code et le raccorde à chacun des contrôles Label.
Remplissez le reste du code, comme suit :
''' <summary> ''' Every label's Click event is handled by this event handler ''' </summary> ''' <param name="sender">The label that was clicked</param> ''' <param name="e"></param> ''' <remarks></remarks> Private Sub label_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label9.Click, Label8.Click, Label7.Click, Label6.Click, Label5.Click, Label4.Click, Label3.Click, Label2.Click, Label16.Click, Label15.Click, Label14.Click, Label13.Click, Label12.Click, Label11.Click, Label10.Click, Label1.Click Dim clickedLabel = TryCast(sender, Label) If clickedLabel IsNot Nothing Then ' If the clicked label is black, the player clicked ' an icon that's already been revealed -- ' ignore the click If clickedLabel.ForeColor = Color.Black Then Exit Sub clickedLabel.ForeColor = Color.Black End If End Sub
/// <summary> /// Every label's Click event is handled by this event handler /// </summary> /// <param name="sender">The label that was clicked</param> /// <param name="e"></param> private void label_Click(object sender, EventArgs e) { Label clickedLabel = sender as Label; if (clickedLabel != null) { // If the clicked label is black, the player clicked // an icon that's already been revealed -- // ignore the click if (clickedLabel.ForeColor == Color.Black) return; clickedLabel.ForeColor = Color.Black; } }
[!REMARQUE]
Vous reconnaîtrez éventuellement object sender en haut du gestionnaire d'événements du didacticiel Créer un quiz mathématique.Vous avez raccroché plusieurs événements Click de contrôles Label à une seule méthode du gestionnaire d'événements, pour que la même méthode soit appelée quel que soit le contrôle Label sur lequel l'utilisateur a cliqué.La méthode doit savoir sur quel contrôle Label le joueur a cliqué afin d'utiliser le nom sender pour ce contrôle Label.La première ligne de la méthode indique au programme qu'il ne s'agit pas uniquement d'un objet, mais plus précisément d'un contrôle Label et qu'il utilise le nom clickedLabel pour accéder à ses propriétés et ses méthodes.
Cette méthode vérifie d'abord si l'objet clickedLabel a été correctement converti (transtypage) en contrôle Label.Dans le cas contraire, il a une valeur Null (C#) ou Nothing (Visual Basic), et vous ne pouvez pas exécuter le reste du code dans la méthode.Ensuite, à l'aide de la propriété ForeColor, la méthode vérifie la couleur de texte du contrôle Label sur lequel le joueur a cliqué.Si le texte est déjà noir, le joueur a cliqué sur l'icône et donc la méthode est terminée.(C'est le rôle de l'instruction return : elle indique au programme qu'il doit arrêter l'exécution de la méthode.) Si l'icône n'a pas encore été sélectionnée, la méthode change sa couleur de texte en noir.
Enregistrez et exécutez votre programme.Un formulaire vierge doit s'afficher avec un arrière-plan bleu.Cliquez dans le formulaire, et l'une des icônes doit apparaître.Continuez à cliquer sur des endroits différents dans le formulaire.Chaque fois que vous cliquez sur les icônes, elles doivent s'afficher.
Pour continuer ou examiner
Pour passer à l'étape suivante du didacticiel, consultez Étape 5 : ajouter des références de contrôles Label.
Pour revenir à l'étape précédente du didacticiel, consultez Étape 3 : assigner une icône aléatoire à chaque contrôle Label.