Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il gioco delle coppie funziona come segue:
Quando un giocatore sceglie uno dei quadrati con un'icona nascosta, il programma mostra l'icona al giocatore facendola diventare nera.
Quindi il giocatore sceglie un'altra icona nascosta.
Se le icone corrispondono, restano visibili.In caso contrario, vengono nuovamente nascoste.
Per far sì che il programma funzioni in questo modo, si aggiunge un gestore eventi Click che modifica il colore dell'etichetta scelta.
Per aggiungere un gestore degli eventi Click a ogni etichetta
Aprire il form in Progettazione Windows Form.In Esplora soluzioni scegliere Form1.cs o Form1.vb.Nella barra dei menu scegliere Visualizza, Finestra di progettazione.
Scegliere il primo controllo etichetta per selezionarlo.Tenere quindi premuto il tasto CTRL mentre si sceglie ognuna delle altre etichette per selezionarle.Assicurarsi che ogni etichetta sia selezionata.
Fare clic su pulsante Eventi nella barra degli strumenti della finestra Proprietà per visualizzare la pagina Eventi nella finestra Proprietà.Scorrere fino all'evento Click e immettere label_Click nella casella, come mostrato nell'immagine seguente.
Finestra Proprietà con evento Click visualizzato
.png)
Premere il tasto INVIO.IDE aggiunge un gestore eventi Click chiamato label_Click() al codice e lo collega a ognuna delle etichette nel form.
Compilare la parte restante di codice come segue:
''' <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; } }[!NOTA]
Se si sceglie di copiare e incollare il blocco di codice label_Click() anziché immetterlo manualmente, è necessario verificare di sostituire il codice label_Click() esistente.In caso contrario, verrà generato un blocco di codice duplicato.
[!NOTA]
È possibile riconoscere object sender all'inizio del gestore eventi, uguale a quello utilizzato nell'esercitazione Esercitazione 2: creare un quiz matematico a tempo.Poiché eventi Click di diversi controlli etichetta sono stati collegati a un unico metodo del gestore eventi, viene chiamato lo stesso metodo, indipendentemente dall'etichetta scelta dall'utente.Il metodo del gestore eventi necessita di sapere quale etichetta è stata scelta, per cui utilizza il nome sender per identificare il controllo etichetta.La prima riga del metodo indica al programma che non si tratta di un oggetto generico, bensì di un controllo etichetta, e che utilizza il nome clickedLabel per accedere ai relativi metodi e proprietà dell'etichetta.
Questo metodo verifica innanzitutto che clickedLabel sia stato correttamente convertito (cast) da un oggetto in un controllo etichetta.In caso contrario, il valore sarà null (C#) o Nothing (Visual Basic) e non è consigliabile eseguire la parte restante di codice nel metodo.Successivamente, il metodo controllerà il colore del testo dell'etichetta scelta utilizzando la proprietà ForeColor dell'etichetta.Se il colore del testo dell'etichetta è nero, significa che l'icona è già stata scelta e il metodo è terminato. Questa è l'azione eseguita dall'istruzione return, che indica al programma di arrestare l'esecuzione del metodo. In caso contrario, l'icona non è stata scelta, pertanto il programma cambierà in nero il colore del testo dell'etichetta.
Nella barra dei menu scegliere File, Salva tutto per salvare lo stato di avanzamento e quindi, nella barra dei menu, scegliere Debug, Avvia debug per eseguire il programma.Si dovrebbe visualizzare un form vuoto con uno sfondo blu.Scegliere una cella qualsiasi nel form: una delle icone deve diventare visibile.Continuare a scegliere diversi punti nel form.Le icone scelte verranno visualizzate.
Per continuare o rivedere l'esercitazione
Per andare al passaggio successivo dell'esercitazione, vedere Passaggio 5: aggiungere riferimenti alle etichette.
Per tornare al passaggio precedente dell'esercitazione, vedere Passaggio 3: assegnare un'icona casuale a ogni etichetta.