合并字符串以查找变量名称

时间:2013-02-26 13:36:42

标签: vb.net string visual-studio variables

假设我有3个名为LBL_1,LBL_2和LBL_3的标签。

然后我有一个函数,可以随机选择1,2和3.

如何将该值与标签名称相结合?

喜欢这个

Dim NR As Integer = MyOneToThreeRandomizer()
'Now NR is 1,2 or 3

LBL_ & NR.ToString(or something) & .Text = "Hello world!"

我当然可以做这样的事情;

Dim NR As Integer = MyOneToThreeRandomizer()
If NR = 1 Then
    LBL_1.Text = "Hello World!"
Else If NR = 2 Then
    LBL_2.Text.....
....And so on

但在这种情况下,最多可能有80个数字,所以这感觉很糟糕。

4 个答案:

答案 0 :(得分:3)

将标签放入数组中,然后通过索引访问它们。

Dim myLabelArray As String() = {"label1", "label2", "label3"}

Dim sb As New StringBuilder()

'Some flavour of loop

    Dim NR As Integer = MyOneToThreeRandomizer()

    sb.Append(myLabelArray(NR-1))

'End loop

如果您有System.Windows.Forms.Label s ,则可以在循环中以编程方式将它们添加到阶段,同时将它们放入{{1 }}

答案 1 :(得分:2)

您可以将标签添加到面板并通过儿童访问它们。然后你可以通过索引访问它们。

答案 2 :(得分:2)

Dim NR As Integer = MyOneToThreeRandomizer()
Dim lbls() As Label = DirectCast(Me.Controls.Find("LBL_" & NR, True), Label())

If lbls.Length > 0 Then
    lbls(0).Text = "Hello world!"
End If

答案 3 :(得分:0)

For Each ctr As Control In Container.Controls
   If ctr.Name = "LBL_" & NR.ToString Then
      CType(ctr, Label).Text = "Hello World"
   End If
Next