2016-10-03 64 views
-1

你能幫我循環這個嗎?我開始學習vb.net語言如何用循環替換一些類似的代碼塊?

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    If Button1.BackColor = Color.Red Then 
     Button1.BackColor = Color.Pink 
    End If 
    If Button2.BackColor = Color.Red Then 
     Button2.BackColor = Color.Pink 
    End If 
    If Button3.BackColor = Color.Red Then 
     Button3.BackColor = Color.Pink 
    End If 
End Sub 
+3

你將不得不提供比這更好的解釋。 「循環這一個」意味着什麼。請準確地提供您想要完成的內容的完整和清晰的解釋。當我們不必猜測時,我們將非常樂意提供幫助。 – jmcilhinney

+0

此外,您的問題的標題應該是一個簡明的總結,而問題本身應該包含所有相關的細節。在這兩種情況下,你剛開始學習語言的事實都不相關。只是事實,夫人。 – jmcilhinney

+0

對不起,但你的問題不清楚看看[問]如何提出好問題 –

回答

0

我不知道我爲什麼要回答這個問題,因爲這個問題真的不是問題。目前尚不清楚,格式都是錯誤的。不過,因爲我在過去的10分鐘內寫了類似的東西,所以我心情很好,我想幫忙.....

你可以用兩種方法來做(也許還有其他方法)兩者都使用一個Foreach循環,它遍歷一組對象。

第一個循環通過窗體上按鈕的匿名數組。然後是相同的條件。很簡單,如果你添加另一個按鈕,將它添加到數組的末尾。

For each btn As Button In {Button1, Button2, Button3, Button4} 
     If btn.BackColor = Color.Red Then 
      btn.BackColor = Color.Pink 
     End If 
    Next 

下一個方法的功能幾乎相同,但您不必手動將按鈕添加到數組中。它假定您想要執行表單上每個按鈕的邏輯。它將當前窗體上的所有控件(按鈕,文本框),如果是按鈕,則將其轉換爲按鈕對象,然後執行相同的條件。

For each btn As Control In Me.Controls 
     If btn.GetType() = GetType(Button) then 
      Dim myButton As Button = CType(btn, Button) 
      If myButton.BackColor = Color.Red Then 
       myButton.BackColor = Color.Pink 
      End If 
     End If 
    Next 

請看看How to ask