步驟 4:將 Click 事件處理常式加入至每個標籤
配對遊戲的運作方式如下:
當玩家按下其中一個含有隱藏圖示的方形時,則程式會將圖示色彩變更為黑色,以便對玩家顯示圖示。
然後,玩家會按下另一個隱藏的圖示。
如果圖示相符,則會保持可見狀態。 如果不相符,則這兩個圖示會再次隱藏。
若要讓您的程式以該種方式運作,您可加入 Click 事件處理常式,以變更已按下標籤的色彩。
若要將 Click 事件處理常式加入至每一個標籤
移至 Windows Form 設計工具,然後按一下第一個 Label 控制項加以選取。 接著,按住 CTRL 鍵,同時按一下其他每一個標籤加以選取。 確定已選取每一個標籤。
接著,移至 [屬性] 視窗中的 [事件] 頁面。 向下捲動至 Click 事件,並在方塊中輸入 label_Click,如下列圖片所示。
顯示 Click 事件的屬性視窗
請按 ENTER 鍵。 IDE 會將名稱為 label_Click() 的 Click 事件處理常式加入至程式碼,並將它連結至每一個標籤。
填入程式碼的其餘部分,如下所示:
''' <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:加入標籤參考。
若要回到上一個教學課程步驟,請參閱步驟 3:將隨機圖示指派給每個標籤。