Partager via


Tutoriel : Personnaliser un questionnaire mathématique WinForms

Dans cette série de quatre didacticiels, vous allez créer un questionnaire mathématique. Le questionnaire contient quatre problèmes de mathématiques aléatoires qu’un participant doit résoudre dans un temps imparti.

Ce tutoriel vous montre comment améliorer votre questionnaire en désactivant les valeurs par défaut et en personnalisant l’apparence des contrôles.

Dans ce tutoriel final, vous allez apprendre à :

  • Ajoutez des gestionnaires d’événements pour effacer les valeurs de contrôle NumericUpDown par défaut.
  • Personnalisez le questionnaire.

Conditions préalables

Ce tutoriel s’appuie sur les didacticiels précédents, en commençant par Créer un questionnaire mathématique winForms. Si vous n’avez pas terminé ces didacticiels, commencez par les suivre.

Ajouter des gestionnaires d’événements pour les contrôles NumericUpDown

Le questionnaire contient NumericUpDown des contrôles que les participants utilisent pour entrer des nombres. Lorsque vous entrez une réponse, vous devez d’abord sélectionner la valeur par défaut ou supprimer cette valeur manuellement. En ajoutant un gestionnaire d’événements Enter, vous pouvez faciliter l’entrée des réponses. Ce code sélectionne et efface la valeur actuelle dans chaque contrôle NumericUpDown dès que le sélecteur de questionnaire le sélectionne et commence à entrer une autre valeur.

  1. Sélectionnez le premier contrôle NumericUpDown sur le formulaire. Dans la boîte de dialogue Propriétés , sélectionnez l’icône Événements dans la barre d’outils.

    Capture d’écran montrant la barre d’outils de la boîte de dialogue Propriétés. Une icône contenant un éclair est soulignée.

    L’onglet Événements dans Propriétés affiche tous les événements auxquels vous pouvez répondre pour l’élément que vous avez sélectionné dans le formulaire. Dans ce cas, tous les événements répertoriés se rapportent au contrôle NumericUpDown.

  2. Sélectionnez l’événement Entrée, entrez answer_Enter, puis sélectionnez Entrée.

    Capture d’écran montrant la boîte de dialogue Propriétés avec l’événement Entrée sélectionné. La zone de méthode contient answer_Enter.

    L’éditeur de code s’affiche et affiche le gestionnaire d’événements Entrée que vous avez créé pour la somme du contrôle NumericUpDown.

  3. Dans la méthode du gestionnaire d’événements answer_Enter, ajoutez le code suivant :

    private void answer_Enter(object sender, EventArgs e)
    {
        // Select the whole answer in the NumericUpDown control.
        NumericUpDown answerBox = sender as NumericUpDown;
    
        if (answerBox != null)
        {
            int lengthOfAnswer = answerBox.Value.ToString().Length;
            answerBox.Select(0, lengthOfAnswer);
        }
    }
    

Dans ce code :

  • La première ligne déclare la méthode. Il inclut un paramètre nommé sender. En C#, le paramètre est object sender. En Visual Basic, c’est sender As System.Object. Ce paramètre fait référence à l’objet dont l’événement est déclenché, appelé expéditeur. Dans ce cas, l’objet expéditeur est le contrôle NumericUpDown.
  • La première ligne à l'intérieur de la méthode convertit ou transforme l'expéditeur d'un objet générique en un contrôle NumericUpDown. Cette ligne affecte également le nom answerBox au contrôle NumericUpDown. Tous les contrôles NumericUpDown sur le formulaire utiliseront cette méthode, et pas seulement celui du problème d'addition.
  • La ligne suivante vérifie si answerBox a été correctement converti en tant que contrôle NumericUpDown.
  • La première ligne à l’intérieur de l’instruction if détermine la longueur de la réponse qui se trouve actuellement dans le contrôle NumericUpDown.
  • La deuxième ligne à l’intérieur de l’instruction if utilise la longueur de réponse pour sélectionner la valeur actuelle dans le contrôle.

Lorsque le participant au questionnaire sélectionne le contrôle, Visual Studio déclenche cet événement. Ce code sélectionne la réponse actuelle. Dès que le participant au quiz commence à saisir une réponse différente, la réponse actuelle est effacée et remplacée par la nouvelle réponse.

  1. Dans Concepteur Windows Forms, sélectionnez de nouveau le contrôle NumericUpDown du problème d’addition.

  2. Dans la page Événements de la boîte de dialogue Propriétés, recherchez l’événement de Clic, puis sélectionnez answer_Enter dans le menu déroulant. Ce gestionnaire d’événements est celui que vous venez d’ajouter.

  3. Dans Concepteur Windows Forms, sélectionnez le contrôle NumericUpDown du problème de soustraction.

  4. Dans la page Événements de la boîte de dialogue Propriétés, recherchez l’événement Entrer, puis sélectionnez answer_Enter dans le menu déroulant. Ce gestionnaire d’événements est celui que vous venez d’ajouter. Répétez cette étape pour l’événement Click.

  5. Répétez les deux étapes précédentes pour les contrôles NumericUpDown de multiplication et de division.

Exécuter votre application

  1. Enregistrez votre programme et exécutez-le.

  2. Démarrez un questionnaire, puis sélectionnez un contrôle NumericUpDown. La valeur existante est automatiquement sélectionnée, puis effacée lorsque vous commencez à entrer une autre valeur.

    Capture d’écran montrant l’application de questionnaire avec quatre problèmes mathématiques aléatoires. La réponse par défaut au premier problème est sélectionnée.

Personnaliser votre questionnaire

Dans cette dernière partie du tutoriel, vous allez explorer quelques façons de personnaliser le questionnaire et de développer ce que vous avez appris.

Modifier la couleur d’une étiquette

  • Utilisez la propriété BackColor du contrôle timeLabel pour changer cette étiquette en rouge lorsque seulement cinq secondes restent dans un questionnaire.

    timeLabel.BackColor = Color.Red;
    
  • Réinitialisez la couleur lorsque le questionnaire est terminé.

Diffusez un son pour obtenir une réponse correcte

Donnez au participant du quiz un indice en jouant un son lorsque la réponse correcte est entrée dans un contrôle NumericUpDown. Pour implémenter cette fonctionnalité, écrivez un gestionnaire d’événements pour l’événement ValueChanged de chaque contrôle. Ce type d’événement se déclenche chaque fois qu’un participant au quiz change la valeur du contrôle.

Étapes suivantes

Félicitations! Vous avez terminé cette série de tutoriels. Vous avez effectué ces tâches de programmation et de conception dans l’IDE Visual Studio :

  • Création d’un projet Visual Studio qui utilise Windows Forms
  • Ajout d’étiquettes, d’un bouton et de contrôles NumericUpDown
  • Ajout d’un minuteur
  • Configurer des gestionnaires d’événements pour vos contrôles
  • Écriture de code C# ou Visual Basic pour gérer les événements

Poursuivez l’apprentissage avec une autre série de tutoriels sur la création d’un jeu correspondant.