2015-02-09 78 views
-1

我需要創建一個函數,通過變量「數字」去指定我必須改變顏色的控件的數量。使用變量的值可以訪問特定的控件嗎?

Private Function match_color(partita, number) 
    If partita = "W" Then 
     MetroTile1.BackColor = Color.Green 'this is a specific control 
    ElseIf partita = "D" Then 

    ElseIf partita = "L" Then 

    End If 
End Function 

我的目標是,例如訪問控制2號,所以我稱之爲match_color功能:

match_color("D",2) 

和控制來改變顏色的數量MetroTile2.BackColor = Color... 我不知道我已經明確了這個想法,但只是變量「數字」,它指定了更改顏色的控件的編號。

+1

注意,VB.NET是強類型語言,所以不要讓弱省略方法簽名的類型類型。否則一切都是'對象',這不是最初的目的。從將「Option String Off」改爲「On」開始。 – 2015-02-09 09:03:04

+0

我在現實中知道控制的數量,這對應於給變量的一些因素。爲了避免每個Metrotile的冗餘代碼,我想知道是否確實可以通過只更改變量「number」來訪問特定控件。 – 2015-02-09 09:09:40

+0

@ tim-schmelter您的意思是** Option Strict **? – 2015-02-09 09:11:47

回答

1

爲什麼您的業務邏輯取決於控件在其父控件中的編號?這毫無意義且容易出錯。說了這麼多,你可以使用Controls.Find

Dim controls = Me.Controls.Find("MetroTile" & number, True) ' False if not recursive 
If controls.Length > 0 Then 
    controls(0).BackColor = Color.Green ' or use a loop if you expect multiple 
End If 
+0

它對我來說很完美,謝謝! – 2015-02-09 09:25:16

相關問題