Krok 4: Obslužné rutiny události klepněte na tlačítko přidáte na každý štítek
Porovnávací hra probíhá takto:
Když hráč klikne na některý čtverec se skrytou ikonou, program zobrazí ikona hráči změnou barvy ikony na černou.
Potom hráč klikne na jinou skrytou ikonu.
Jestliže se ikony shodují, zůstávají viditelné.Pokud tomu tak není, jsou obě ikony opět skryty.
Aby program takto fungoval, přidejte obslužnou rutinu události Click, která změní barvu jmenovky, na kterou jste kliknuli.
Přidat obslužnou rutinu události Click každé jmenovce
Přejděte do Návrháře formulářů a klikněte na první ovládací prvek Label k vybrání.Potom podržte klávesu Ctrl, zatímco klikáte na každou další jmenovku, abyste je vybrali.Ujistěte se, že každá jmenovka je vybrána.
Poté pokračujte na stránku Události v okně Vlastnosti.Posouvejte dolů k události Click a napište label_Click v poli, jak je znázorněno na následujícím obrázku.
Okno Vlastnosti zobrazující událost Click
Stiskněte klávesu ENTER.Rozhraní IDE přidá obslužnou rutinu události Click nazvanou label_Click() ke kódu a zavěsí je k jednotlivým jmenovkám.
Vyplňte zbývající část kódu takto:
''' <summary> ''' Every label's Click event is handled by this event handler ''' </summary> ''' <param name="sender">The label that was clicked</param> ''' <param name="e"></param> ''' <remarks></remarks> Private Sub label_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label9.Click, Label8.Click, Label7.Click, Label6.Click, Label5.Click, Label4.Click, Label3.Click, Label2.Click, Label16.Click, Label15.Click, Label14.Click, Label13.Click, Label12.Click, Label11.Click, Label10.Click, Label1.Click Dim clickedLabel = TryCast(sender, Label) If clickedLabel IsNot Nothing Then ' If the clicked label is black, the player clicked ' an icon that's already been revealed -- ' ignore the click If clickedLabel.ForeColor = Color.Black Then Exit Sub clickedLabel.ForeColor = Color.Black End If End Sub
/// <summary> /// Every label's Click event is handled by this event handler /// </summary> /// <param name="sender">The label that was clicked</param> /// <param name="e"></param> private void label_Click(object sender, EventArgs e) { Label clickedLabel = sender as Label; if (clickedLabel != null) { // If the clicked label is black, the player clicked // an icon that's already been revealed -- // ignore the click if (clickedLabel.ForeColor == Color.Black) return; clickedLabel.ForeColor = Color.Black; } }
[!POZNÁMKA]
Můžete rozpoznat object sender v horní části obslužné rutiny události z kurzu Vytvoření Matematického Kvízu.Připojili jste různé události Click ovládacího prvku Label do jediné metody obslužné rutiny události, takže se volá stejná metoda bez ohledu na to, na kterou jmenovku uživatel kliknul.Metoda potřebuje vědět, na kterou jmenovku se kliknulo, takže používá název sender pro ovládací prvek Label.První řádek metody dává programu pokyn, že není pouze objekt, ale specificky ovládací prvek Label, a tak používá název clickedLabel k přístupu k jeho vlastnostem a metodám.
Tato metoda nejprve zkontroluje, zda clickedLabel byl úspěšně převeden (přetypován) z objektu na ovládací prvek Label.Pokud neúspěšně, má hodnotu null (C#) nebo Nothing (Visual Basic) a nechcete provést zbytek kódu v metodě.Dále metoda zkontroluje kliknutou barvu textu jmenovky pomocí vlastnosti ForeColor.Pokud je již černá, na ikonu bylo kliknuto, takže byla metoda provedena.(Je neobsahuje příkaz return: informuje program zastavení, spuštění metody.) Pokud nebylo na ikonu kliknuto, změní její barvu textu na černou.
Uložte program a spusťte jej.Měl by se zobrazit prázdný formulář s modrým pozadím.Klikněte ve formuláři a jedna z ikon by se měla stát viditelná.Pokračujte v klikání na různých místech ve formuláři.Jak klikáte na ikony, měly by se objevovat.
Chcete-li pokračovat nebo znovu projít
Přechod na další výukový program naleznete v tématu Krok 5: Přidání popisku odkazy.
K návratu do předchozího kroku výukového programu přejděte na Krok 3: Přiřazení náhodné ikonu na každý štítek.