VB2008 controls語法的使用

請教各位大大!

在我的專案中設置了一個中英文切換的功能.

在畫面上放置了

中文狀態下

label1.text~label10.text="預設值"

label11.text~label20.text="實際值"

英文狀態下

label1.text~label10.text="SV"

label11.text~label20.text="PV"

請問在VB6中我可以這樣做來達到統一給值的語法

For a As Integer = 1 To 10

Controls("label" & a).Text = "SV"

Next

在VB2008中我要如何做才能達到這個功能呢?

Update:

原來還有卡一個條件"容器"

我的label1~10分別放置於group1~group10中

難怪我一直出現錯誤訊息

1 Answer

Rating
  • litfal
    Lv 5
    1 decade ago
    Favorite Answer

    作法幾乎一樣, 不過要注意一下有沒有用到容器

    Label沒有放在容器內這樣就可以了

    (程式碼要與Label所在的Form屬於同一個Class)

    For i As Integer = 1 To 10

    Me.Controls("label" & i.ToString).Text = "SV"

    Next

    2009-09-01 21:21:25 補充:

    用個萬用函數

    Function GetControlsByName(ByVal Name As String) As Control

    Dim ctrl As Control = Me

    Do

    If ctrl.Name = Name Then Return ctrl

    ctrl = GetNextControl(ctrl, True)

    Loop Until IsNothing(ctrl)

    Return Nothing

    End Function

    2009-09-01 21:23:40 補充:

    '使用時

    For i As Integer = 1 To 10

    GetControlsByName("Label" & i.ToString).Text = "SV"

    Next

    只要在同樣的Form裡面的物件都抓得到

    當然若是沒有的物件會發生錯誤

    可以加個IsNothing判斷式

Still have questions? Get your answers by asking now.