Sdílet prostřednictvím


Návod: Přizpůsobení aplikace WinForms pro matematický kvíz

V této sérii čtyř kurzů vytvoříte matematický kvíz. Kvíz obsahuje čtyři náhodné matematické úlohy, na které se snaží odpovědět účastník v zadaném čase.

V tomto kurzu se dozvíte, jak kvíz vylepšit vymazáním výchozích hodnot a přizpůsobením vzhledu ovládacích prvků.

V tomto posledním kurzu se naučíte:

  • Přidejte obslužné rutiny událostí, které vymažou výchozí hodnoty ovládacího prvku NumericUpDown.
  • Přizpůsobte kvíz.

Požadavky

Tento kurz vychází z předchozích kurzů počínaje Vytvoření matematické kvízové aplikace WinForms. Pokud jste tyto kurzy ještě nedokončili, projděte si je jako první.

Přidejte obslužné rutiny událostí pro ovládací prvky NumericUpDown

Kvíz obsahuje NumericUpDown ovládací prvky, které používají účastníci kvízu k zadání čísel. Když zadáte odpověď, musíte nejdřív vybrat výchozí hodnotu nebo tuto hodnotu odstranit ručně. Přidáním obslužné funkce události Enter můžete usnadnit zadávání odpovědí. Tento kód vybere a vymaže aktuální hodnotu v každém ovládacím prvku NumericUpDown, jakmile si ho uživatel vybere a začne zadávat novou hodnotu.

  1. Vyberte první ovládací prvek NumericUpDown ve formuláři. V dialogovém okně Vlastnosti vyberte na panelu nástrojů ikonu Události.

    Snímek obrazovky s panelem nástrojů dialogového okna Vlastnosti Zobrazí se ikona obsahující blesk.

    Na kartě Události v Vlastnosti se zobrazí všechny události, na které můžete odpovědět pro položku, kterou jste vybrali ve formuláři. V tomto případě se všechny uvedené události týkají ovládacího prvku NumericUpDown.

  2. Vyberte Enter událost, zadejte answer_Entera pak vyberte Enter.

    Snímek obrazovky s dialogovým oknem Vlastnosti s vybranou událostí Enter, pole metody obsahuje answer_Enter.

    Zobrazí se editor kódu a zobrazí obslužnou rutinu události Enter, kterou jste vytvořili pro ovládací prvek součet NumericUpDown.

  3. Do metody pro obslužnou rutinu události answer_Enter přidejte následující kód:

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

V tomto kódu:

  • První řádek deklaruje metodu. Obsahuje parametr s názvem sender. V jazyce C# je parametr object sender. V jazyce Visual Basic je to sender As System.Object. Tento parametr odkazuje na objekt, jehož událost se spouští, což se označuje jako odesílatel. V tomto případě je objekt odesílatele Ovládací prvek NumericUpDown.
  • První řádek uvnitř metody převede odesílatele z obecného objektu na ovládací prvek typu NumericUpDown. Tento řádek také přiřadí název answerBox ovládacímu prvku NumericUpDown. Všechny ovládací prvky NumericUpDown ve formuláři budou používat tuto metodu, nejen ovládací prvek úlohy sčítání.
  • Další řádek ověřuje, jestli bylo answerBox úspěšně převedeno jako kontrolu typu NumericUpDown.
  • První řádek uvnitř příkazu if určuje délku odpovědi, která je aktuálně v ovládacím prvku NumericUpDown.
  • Druhý řádek uvnitř příkazu if používá délku odpovědi k výběru aktuální hodnoty v ovládacím prvku.

Když účastník kvízu vybere ovládací prvek, Visual Studio vyvolá tuto událost. Tento kód vybere aktuální odpověď. Jakmile osoba řešící kvíz začne zadávat jinou odpověď, aktuální odpověď se vymaže a nahradí novou odpovědí.

  1. V Windows Forms Designerznovu vyberte ovládací prvek NumericUpDown, který souvisí s problémem sčítání.

  2. Na stránce Události dialogového okna Vlastnosti vyhledejte událost Click a poté v rozevírací nabídce vyberte answer_Enter. Tento obslužný program události je ten, který jste právě přidali.

  3. V Windows Forms Designervyberte ovládací prvek NumericUpDown problému odčítání.

  4. Na stránce Události dialogového okna Vlastnosti vyhledejte událost Enter a v rozevírací nabídce vyberte answer_Enter. Tento obslužný program události je ten, který jste právě přidali. Tento krok opakujte pro událost Click.

  5. Opakujte předchozí dva kroky pro ovládací prvky násobení a dělení NumericUpDown.

Spuštění aplikace

  1. Uložte program a spusťte ho.

  2. Spusťte kvíz a vyberte ovládací prvek NumericUpDown. Existující hodnota se automaticky vybere a po zahájení zadávání jiné hodnoty se vymaže.

    Snímek obrazovky znázorňující aplikaci kvízu se čtyřmi náhodnými matematickými problémy Je vybrána výchozí odpověď na první problém.

Přizpůsobení kvízu

V poslední části kurzu prozkoumáte některé způsoby přizpůsobení kvízu a rozbalení toho, co jste se naučili.

Změna barvy popisku

  • Pomocí vlastnosti BackColor ovládacího prvku timeLabel způsobíte, že tento popisek zčervená, až v kvízu zůstane jenom pět sekund.

    timeLabel.BackColor = Color.Red;
    
  • Až kvíz skončí, obnovte barvu.

Pusťte zvuk pro správnou odpověď

Po vložení správné odpovědi do ovládacího prvku NumericUpDown dejte řešiteli kvízu nápovědu tím, že přehrajete zvuk. K implementaci této funkce napište obslužnou rutinu události pro událost ValueChanged každého ovládacího prvku. Tento typ události se spustí pokaždé, když účastník kvízu změní hodnotu ovládacího prvku.

Další kroky

Blahopřejeme! Dokončili jste tuto sérii kurzů. Dokončili jste tyto úlohy programování a návrhu v integrovaném vývojovém prostředí sady Visual Studio:

  • Vytvořili jste projekt sady Visual Studio, který používá Windows Forms.
  • Přidání popisků, tlačítka a ovládacích prvků NumericUpDown
  • Přidání časovače
  • Nastavte obslužné rutiny událostí pro ovládací prvky
  • Napsání kódu jazyka C# nebo Jazyka Visual Basic pro zpracování událostí

Pokračujte ve studiu s dalšími sériemi kurzů o tom, jak vytvořit odpovídající hru.