Delen via


Zelfstudie: Een WinForms-app voor wiskundequiz aanpassen

In deze reeks van vier handleidingen ontwerpt u een wiskundetoets. De toets bevat vier willekeurige wiskundige problemen die een toetsnemer probeert te beantwoorden binnen een opgegeven tijd.

In deze zelfstudie leert u hoe u uw toets kunt verbeteren door standaardwaarden te wissen en door het uiterlijk van besturingselementen aan te passen.

In deze laatste zelfstudie leert u het volgende:

  • Voeg gebeurtenishandlers toe om de standaardwaarden van het besturingselement NumericUpDown te wissen.
  • Pas de toets aan.

Voorwaarden

Deze zelfstudie is gebaseerd op eerdere zelfstudies, te beginnen met Een WinForms-app voor wiskundige toetsen maken. Als u die zelfstudies nog niet hebt voltooid, moet u deze eerst doorlopen.

Voeg gebeurtenishandlers toe voor de NumericUpDown-besturingselementen

De toets bevat NumericUpDown besturingselementen die toetsneemers gebruiken om getallen in te voeren. Wanneer u een antwoord invoert, moet u eerst de standaardwaarde selecteren of die waarde handmatig verwijderen. Door een Enter gebeurtenis-handler toe te voegen, kunt u het gemakkelijker maken om antwoorden in te voeren. Met deze code wordt de huidige waarde in elk besturingselement NumericUpDown geselecteerd en gewist zodra de toetsnemer deze selecteert en een andere waarde invoert.

  1. Selecteer het eerste besturingselement NumericUpDown in het formulier. Selecteer in het dialoogvenster Eigenschappen het pictogram Gebeurtenissen op de werkbalk.

    Schermopname van de werkbalk van het dialoogvenster Eigenschappen. Een pictogram met een bliksemschicht wordt aangeduid.

    Op het tabblad Gebeurtenissen in Eigenschappen worden alle gebeurtenissen weergegeven waarop u kunt reageren voor het item dat u in het formulier hebt geselecteerd. In dit geval hebben alle vermelde gebeurtenissen betrekking op het besturingselement NumericUpDown.

  2. Selecteer de gebeurtenis Enter, voer answer_Enterin en selecteer Enter.

    Schermopname van het dialoogvenster Eigenschappen met de gebeurtenis Enter geselecteerd. Het methodevak bevat answer_Enter.

    De code-editor verschijnt en laat de invoer-gebeurtenishandler zien die u hebt gemaakt voor het som NumericUpDown-besturingselement.

  3. Voeg in de methode voor de gebeurtenis-handler antwoord_Enter de volgende code toe:

    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);
        }
    }
    

In deze code:

  • De eerste regel declareert de methode. Het bevat een parameter met de naam sender. In C# wordt de parameter object sendergebruikt. In Visual Basic is het sender As System.Object. Deze parameter verwijst naar het object waarvan de gebeurtenis wordt geactiveerd, die de afzender wordt genoemd. In dit geval is het afzenderobject het besturingselement NumericUpDown.
  • De eerste regel in de methode cast of converteert de afzender van een algemeen object naar een NumericUpDown-besturingselement. Met deze regel wordt ook de naam answerBox toegewezen aan het besturingselement NumericUpDown. Alle NumericUpDown-besturingselementen op het formulier gebruiken deze methode, niet alleen het besturingselement voor het optellen probleem.
  • De volgende regel controleert of answerBox succesvol is omgezet naar een NumericUpDown-besturingselement.
  • De eerste regel in de instructie if bepaalt de lengte van het antwoord dat zich momenteel in het besturingselement NumericUpDown bevindt.
  • De tweede regel in de instructie if gebruikt de antwoordlengte om de huidige waarde in het besturingselement te selecteren.

In Visual Studio wordt deze gebeurtenis geactiveerd wanneer de quizdeelnemer het besturingselement selecteert. Met deze code wordt het huidige antwoord geselecteerd. Zodra de toetsnemer een ander antwoord begint in te voeren, wordt het huidige antwoord gewist en vervangen door het nieuwe antwoord.

  1. Selecteer in Windows Forms Designeropnieuw het NumericUpDown-besturingselement van het toevoegingsprobleem.

  2. Zoek op de pagina Gebeurtenissen van het dialoogvenster Eigenschappen de gebeurtenis Klik op en selecteer answer_Enter in de vervolgkeuzelijst. Deze eventhandler is degene die u zojuist hebt toegevoegd.

  3. Selecteer in Windows Forms Designerhet besturingselement NumericUpDown van het aftrekken van het probleem.

  4. Zoek op de pagina Gebeurtenissen van het dialoogvenster Eigenschappen naar de gebeurtenis Enter en selecteer vervolgens answer_Enter in de vervolgkeuzelijst. Deze eventhandler is degene die u zojuist hebt toegevoegd. Herhaal deze stap voor de Klik op gebeurtenis.

  5. Herhaal de vorige twee stappen voor de NumericUpDown-besturingselementen voor vermenigvuldigen en delen.

Uw app uitvoeren

  1. Sla uw programma op en voer het uit.

  2. Start een quiz en selecteer een NumericUpDown-besturingselement. De bestaande waarde wordt automatisch geselecteerd en vervolgens gewist wanneer u een andere waarde invoert.

    Schermopname van de toets-app met vier willekeurige wiskundige problemen. Het standaardantwoord op het eerste probleem is geselecteerd.

Uw toets aanpassen

In dit laatste deel van de zelfstudie verkent u enkele manieren om de toets aan te passen en verder te gaan met wat u hebt geleerd.

De kleur van een label wijzigen

  • Gebruik de eigenschap BackColor van de timeLabel controle om dit label rood te maken wanneer er nog maar vijf seconden over zijn in een quiz.

    timeLabel.BackColor = Color.Red;
    
  • Stel de kleur opnieuw in wanneer de toets voorbij is.

Een geluid afspelen voor een juist antwoord

Geef de quizdeelnemer een hint door een geluid af te spelen wanneer het juiste antwoord in een NumericUpDown controle-element wordt ingevoerd. Als u deze functionaliteit wilt implementeren, schrijft u een eventhandler voor de gebeurtenis ValueChanged van elk besturingselement. Dit type gebeurtenis wordt geactiveerd wanneer een quizdeelnemer de waarde van het besturingselement wijzigt.

Volgende stappen

Gefeliciteerd! U hebt deze reeks zelfstudies voltooid. U hebt deze programmeer- en ontwerptaken voltooid in de Visual Studio IDE:

  • Een Visual Studio-project gemaakt dat gebruikmaakt van Windows Forms
  • Labels, een knop en NumericUpDown-besturingselementen toegevoegd
  • Een timer toegevoegd
  • Gebeurtenis-handlers instellen voor uw besturingselementen
  • Geschreven C# of Visual Basic-code voor het afhandelen van de gebeurtenissen

Blijf leren met een andere reeks zelfstudies over het bouwen van een overeenkomend spel.