Sdílet prostřednictvím


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:

  1. Když hráč klikne na některý čtverec se skrytou ikonou, program zobrazí ikona hráči změnou barvy ikony na černou.

  2. Potom hráč klikne na jinou skrytou ikonu.

  3. 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

  1. 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.

  2. 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

    Okno Vlastnosti zobrazující klepněte na událost

  3. 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.

  4. 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.

  5. 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