Freigeben über


Lernprogramm: Anpassen einer WinForms-App für mathematische Tests

In dieser Reihe von vier Lernprogrammen erstellen Sie ein mathematisches Quiz. Das Quiz enthält vier zufällige mathematische Probleme, die ein Quiz taker innerhalb eines bestimmten Zeitraums beantworten möchte.

In diesem Lernprogramm erfahren Sie, wie Sie Ihre Prüfung verbessern, indem Sie Standardwerte löschen und die Darstellung von Steuerelementen anpassen.

In diesem letzten Lernprogramm erfahren Sie, wie Sie:

  • Fügen Sie Ereignishandler hinzu, um die standardmäßigen NumericUpDown-Steuerelementwerte zu löschen.
  • Passen Sie das Quiz an.

Voraussetzungen

Dieses Lernprogramm baut auf vorherigen Lernprogrammen auf, beginnend mit Erstellen einer WinForms-App für mathematische Tests. Wenn Sie diese Tutorials noch nicht abgeschlossen haben, sollten Sie sie zuerst durcharbeiten.

Hinzufügen von Ereignishandlern für die NumericUpDown-Steuerelemente

Das Quiz enthält NumericUpDown-Steuerelemente, die Quizteilnehmer*innen zum Eingeben von Zahlen verwenden. Wenn Sie eine Antwort eingeben, müssen Sie entweder zuerst den Standardwert auswählen oder diesen Wert manuell löschen. Wenn Sie einen Enter Ereignishandler hinzufügen, können Sie die Eingabe von Antworten vereinfachen. Mit diesem Code wird der aktuelle Wert in den einzelnen NumericUpDown-Steuerelementen ausgewählt und gelöscht, sobald Quizteilnehmer*innen auf das Steuerelement klicken und einen anderen Wert eingeben.

  1. Wählen Sie das erste NumericUpDown-Steuerelement im Formular aus. Klicken Sie im Dialogfeld Eigenschaften auf das Symbol Ereignisse auf der Symbolleiste.

    Screenshot, der die Symbolleiste des Dialogfelds

    Auf der Registerkarte Ereignisse in Eigenschaften werden alle Ereignisse angezeigt, auf die Sie für das Element Reagieren können, das Sie im Formular ausgewählt haben. In diesem Fall beziehen sich alle aufgeführten Ereignisse auf das NumericUpDown-Steuerelement.

  2. Wählen Sie das Enter Ereignis aus, geben Sie answer_Enterein, und wählen Sie dann Enteraus.

    Screenshot, der das Dialogfeld

    Der Code-Editor wird geöffnet und zeigt den Ereignishandler „Enter“ an, den Sie für das NumericUpDown-Steuerelement sum erstellt haben.

  3. Fügen Sie in der Methode für den answer_Enter-Ereignishandler den folgenden Code hinzu:

    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 diesem Code:

  • Die erste Zeile deklariert die Methode. Sie enthält einen Parameter, der senderbenannt wird. In C# ist der Parameter object sender. In Visual Basic ist es sender As System.Object. Dieser Parameter bezieht sich auf das Objekt, dessen Ereignis ausgelöst wird, das als Absender bezeichnet wird. In diesem Fall ist das Senderobjekt das NumericUpDown-Steuerelement.
  • Die erste Zeile innerhalb der Methode wandelt den Sender von einem generischen Objekt in ein NumericUpDown-Steuerelement um oder konvertiert diesen. Diese Zeile weist dem NumericUpDown-Steuerelement auch den Namen answerBox- zu. Alle NumericUpDown-Steuerelemente im Formular verwenden diese Methode, nicht nur das Steuerelement des Additionsproblems.
  • In der nächsten Zeile wird überprüft, ob answerBox erfolgreich in ein NumericUpDown-Steuerelement umgewandelt wurde.
  • Die erste Zeile in der if-Anweisung bestimmt die Länge der Antwort, die sich derzeit im NumericUpDown-Steuerelement befindet.
  • Die zweite Zeile innerhalb der if-Anweisung verwendet die Antwortlänge, um den aktuellen Wert im Steuerelement auszuwählen.

Wenn der Quizteilnehmer das Steuerelement auswählt, löst Visual Studio dieses Ereignis aus. Dieser Code wählt die aktuelle Antwort aus. Sobald der Quizteilnehmer anfängt, eine andere Antwort einzugeben, wird die aktuelle Antwort gelöscht und durch die neue ersetzt.

  1. Wählen Sie im Windows Forms-Designer erneut das NumericUpDown-Steuerelement der Additionsaufgabe aus.

  2. Suchen Sie auf der Seite Ereignisse des Dialogfelds Eigenschaften nach dem Click-Ereignis, und wählen Sie dann im Dropdownmenü answer_Enter aus. Dies ist der Ereignishandler, den Sie soeben hinzugefügt haben.

  3. Klicken Sie im Windows Forms-Designer auf das NumericUpDown-Steuerelement der Subtraktionsaufgabe.

  4. Suchen Sie auf der Seite Ereignisse des Dialogfelds Eigenschaften nach dem Enter-Ereignis, und wählen Sie dann im Dropdownmenü answer_Enter aus. Dies ist der Ereignishandler, den Sie soeben hinzugefügt haben. Wiederholen Sie diesen Schritt für das Click-Ereignis.

  5. Wiederholen Sie die beiden vorherigen Schritte für die NumericUpDown-Steuerelemente für die Multiplikations- bzw. Divisionsaufgabe.

Ausführen der App

  1. Speichern Sie Ihr Programm, und führen Sie es aus.

  2. Starten Sie ein Quiz, und wählen Sie ein NumericUpDown-Steuerelement aus. Der vorhandene Wert wird automatisch ausgewählt und dann gelöscht, wenn Sie beginnen, einen anderen Wert einzugeben.

    Screenshot, der die Quiz-App mit vier zufälligen mathematischen Problemen zeigt. Die Standardantwort auf das erste Problem ist ausgewählt.

Passen Sie Ihr Quiz an

In diesem letzten Teil des Lernprogramms erfahren Sie, wie Sie das Quiz anpassen und das Gelernte erweitern können.

Ändern der Farbe einer Beschriftung

  • Verwenden Sie die BackColor-Eigenschaft des timeLabel-Steuerelements, um diese Bezeichnung rot zu färben, wenn in einem Quiz nur noch für fünf Sekunden eine Eingabe möglich ist.

    timeLabel.BackColor = Color.Red;
    
  • Setzen Sie die Farbe zurück, wenn das Quiz beendet ist.

Wiedergeben eines Sounds für eine richtige Antwort

Geben Sie dem Quizteilnehmer einen Hinweis, indem Sie einen Ton abspielen, wenn die richtige Antwort in ein NumericUpDown-Eingabefeld eingegeben wird. Um diese Funktionalität zu implementieren, schreiben Sie einen Ereignishandler für das ValueChanged-Ereignis jedes Steuerelements. Diese Art von Ereignis wird ausgelöst, wenn Quizteilnehmende den Wert des Steuerelements ändern.

Nächste Schritte

Glückwunsch! Sie haben diese Reihe von Tutorials abgeschlossen. Sie haben diese Programmier- und Entwurfsaufgaben in der Visual Studio-IDE abgeschlossen:

  • Erstellt ein Visual Studio-Projekt, das Windows Forms verwendet
  • Hinzugefügte Bezeichnungen, eine Schaltfläche und NumericUpDown-Steuerelemente
  • Timer hinzugefügt
  • Richten Sie Ereignishandler für Ihre Steuerelemente ein
  • Geschriebener C#- oder Visual Basic-Code zum Behandeln der Ereignisse

Lernen Sie mit einer weiteren Lernprogrammreihe weiter, wie Sie ein passendes Spiel erstellen.