Tutorial: Anpassen einer WinForms-App für ein Mathequiz
In dieser Reihe von vier Tutorials erstellen Sie ein Mathequiz. Das Quiz enthält vier zufällige mathematische Probleme, die Quizteilnehmer*innen innerhalb einer angegebenen Zeit zu beantworten versuchen.
In diesem Tutorial erfahren Sie, wie Sie Ihr Quiz verbessern, indem Sie Standardwerte löschen und die Darstellung von Steuerelementen anpassen.
In diesem letzten Tutorial lernen Sie Folgendes:
- Hinzufügen von Ereignishandlern zum Löschen der NumericUpDown-Standardsteuerelementwerte
- Anpassen des Quiz
Voraussetzungen
Dieses Tutorial baut auf vorherigen Tutorials auf, beginnend mit dem Tutorial Erstellen einer WinForms-App für ein Mathequiz. 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. Durch Hinzufügen eines Enter-Ereignishandlers 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.
Klicken Sie auf das erste NumericUpDown-Steuerelement im Formular. Klicken Sie im Dialogfeld Eigenschaften auf das Symbol Ereignisse auf der Symbolleiste.
Auf der Registerkarte Ereignisse unter 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.
Wählen Sie das Ereignis Enter aus, geben Sie answer_Enter ein, und klicken Sie dann die EINGABETASTE.
Der Code-Editor wird geöffnet und zeigt den Ereignishandler „Enter“ an, den Sie für das NumericUpDown-Steuerelement sum (Summe) erstellt haben.
Fügen Sie in der Methode für den answer_Enter-Ereignishandler den folgenden Code hinzu:
Wichtig
Verwenden Sie das Programmiersprachensteuerelement oben rechts auf dieser Seite, um entweder den C#-Codeausschnitt oder den Visual Basic-Codeausschnitt anzuzeigen.
In diesem Code:
- In der ersten Zeile wird die Methode deklariert. Sie enthält einen Parameter mit dem Namen
sender
. In C# lautet der Parameterobject sender
. In Visual Basic wirdsender As System.Object
verwendet. Dieser Parameter verweist auf das Objekt, dessen Ereignis ausgelöst wird, das als Absender bezeichnet wird. In diesem Fall ist das Absenderobjekt 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 der Additionsaufgabe.
- 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 in der
if
-Anweisung verwendet die Antwortlänge, um den aktuellen Wert im Steuerelement auszuwählen.
Wenn Quizteilnehmer*innen auf das Steuerelement klicken, löst Visual Studio dieses Ereignis aus. Dieser Code markiert die aktuelle Antwort. Sobald Quizteilnehmer*innen eine andere Antwort eingeben, wird die vorherige Antwort gelöscht und durch die neue Antwort ersetzt.
Wählen Sie im Windows Forms-Designer erneut das NumericUpDown-Steuerelement der Additionsaufgabe aus.
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 gerade hinzugefügt haben.
Klicken Sie im Windows Forms-Designer auf das NumericUpDown-Steuerelement der Subtraktionsaufgabe.
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 gerade hinzugefügt haben. Wiederholen Sie diesen Schritt für das Click-Ereignis.
Wiederholen Sie die beiden vorherigen Schritte für die NumericUpDown-Steuerelemente für die Multiplikations- bzw. Divisionsaufgabe.
Ausführen der App
Speichern Sie das Programm, und führen Sie es aus.
Starten Sie ein Quiz, und wählen Sie ein NumericUpDown-Steuerelement aus. Der vorhandene Wert wird automatisch markiert und dann gelöscht, wenn Sie beginnen, einen anderen Wert einzugeben.
Anpassen Ihres Quiz
In diesem letzten Teil des Tutorials lernen Sie einige Möglichkeiten kennen, das Quiz anzupassen und das neue Wissen zu vertiefen.
Ändern der Farbe einer Bezeichnung
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.
Setzen Sie die Farbe zurück, wenn das Quiz vorbei ist.
Wiedergeben eines Geräuschs für eine richtige Antwort
Geben Sie dem Quizteilnehmer einen Hinweis, indem Sie einen Sound wiedergeben, wenn in ein NumericUpDown-Steuerelement die richtige Antwort 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 Quizteilnehmer*innen den Wert des Steuerelements ändern.
Nächste Schritte
Glückwunsch! Sie haben diese Tutorialreihe abgeschlossen. Sie haben diese Programmier- und Entwurfsaufgaben in der Visual Studio-IDE abgeschlossen:
- Erstellen eines Visual Studio-Projekts, das Windows Forms verwendet
- Hinzufügen von Bezeichnungen, einer Schaltfläche und NumericUpDown-Steuerelementen
- Hinzufügen eines Timers
- Einrichten von Ereignishandlern für Ihre Steuerelemente
- Schreiben von C#- oder Visual Basic-Code zum Behandeln der Ereignisse
Fahren Sie mit einer weiteren Tutorialreihe zum Erstellen eines Vergleichsspiels fort.