0

LBL_1、LBL_2、LBL_3という名前の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

4 に答える 4

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.Labelsがある場合は、それらをプログラムでステージに追加し、ループで追加することもできます。また、それらをに配置することもできますlabelArray

于 2013-02-26T13:38:55.157 に答える
2

パネルにラベルを追加して、子供たちを介してそれらにアクセスすることができます。次に、uはインデックスでそれらにアクセスできます。

于 2013-02-26T13:41:16.383 に答える
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
于 2013-02-26T13:58:58.287 に答える
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
于 2013-02-26T13:42:15.010 に答える