共用方式為


步驟 4:將 Click 事件處理常式加入至每個標籤

配對遊戲的運作方式如下:

  1. 當玩家按下其中一個含有隱藏圖示的方形時,則程式會將圖示色彩變更為黑色,以便對玩家顯示圖示。

  2. 然後,玩家會按下另一個隱藏的圖示。

  3. 如果圖示相符,則會保持可見狀態。 如果不相符,則這兩個圖示會再次隱藏。

若要讓您的程式以該種方式運作,您可加入 Click 事件處理常式,以變更已按下標籤的色彩。

若要將 Click 事件處理常式加入至每一個標籤

  1. 移至 Windows Form 設計工具,然後按一下第一個 Label 控制項加以選取。 接著,按住 CTRL 鍵,同時按一下其他每一個標籤加以選取。 確定已選取每一個標籤。

  2. 接著,移至 [屬性] 視窗中的 [事件] 頁面。 向下捲動至 Click 事件,並在方塊中輸入 label_Click,如下列圖片所示。

    顯示 Click 事件的屬性視窗

    顯示 Click 事件的 [屬性] 視窗

  3. 請按 ENTER 鍵。 IDE 會將名稱為 label_Click() 的 Click 事件處理常式加入至程式碼,並將它連結至每一個標籤。

  4. 填入程式碼的其餘部分,如下所示:

    ''' <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;
        }
     }
    
    注意事項注意事項

    您可以辨識來自「建立數學測驗」教學課程中事件處理常式上方的 object sender。您會將不同的 Label 控制項 Click 事件連結至單一事件處理常式方法,因此不論使用者按下哪一個標籤,都會呼叫相同的方法。此方法需要知道已按下哪一個標籤,因此它會對該 Label 控制項使用名稱 sender。此方法的第一行告知程式,它不只是一個物件,還是一個 Label 控制項,而且它會使用名稱 clickedLabel 來存取其屬性和方法。

    這個方法會先檢查是否已成功地將 clickedLabel 從物件轉換為 Label 控制項。 如果轉換不成功,則其值為 null (C#) 或 Nothing (Visual Basic),而且您不會想執行方法中其餘部分的程式碼。 接下來,此方法會使用 ForeColor 屬性來檢查已按下標籤的文字色彩。 如果它已經是黑色,則表示已按下圖示,所以此方法便已完成。 (這就是 return 陳述式的作用:它會告訴程式停止執行此方法。) 如果尚未按下圖示,其文字色彩就會變成黑色。

  5. 儲存並執行您的程式。 您應該會看到一個藍色背景的空白表單。 在該表單中按一下,應該就可以看見其中一個圖示。 繼續在表單中的不同位置按一下。 當您按一下圖示時,圖示應該就會出現。

若要繼續或檢視